除了 3D 点之外,是否存在 Point 类的等效项?

Sim*_*eSi 5 java 3d android

我想存储游戏中某些对象的 xy 和 z 坐标,但我找不到像 Point 这样的内置类。是否有一个很好的标准类我可以添加并使用来处理从一个对象到另一个对象的点/方位之间的距离等?

小智 4

最近完成了一些矢量映射(包括 z / 3D),并看到您的 Android 标签,我建议您自己滚动。

原因有很多:

  • 您可以进行定制以满足您特定的精度/内存/性能限制。
  • 如果是多线程的,您可以使您的类不可变且线程安全
  • 即,如果内存有限,您可以将所有三个维度存储在 int 或 long 中
  • 如果 cpu 受限,您可以使用普通的单独数字
  • 如果 GC / Garbage 受限,您可以回收并池化实例(可变)

最后,这些原语中的大多数都非常容易编写、测试等。您需要编写的主要方法(除了样板构造函数/获取/设置/...之外) - 距离 - 点积 - 统一(使长度== 1 用于各种数学运算) - 我过去曾使用 DistanceSquared 进行比较函数...这从大多数距离方法中删除了 sqrt 运算符,同时计算对于比较点距离等足够有用的相对距离。