我想存储游戏中某些对象的 x y 和 z 坐标,但找不到像 Point 这样的内置类。是否有一个很好的标准类我可以添加并使用它来处理从一个对象到另一个对象的点/轴承之间的距离等?
最佳答案
最近做了一些 vector 映射(包括 z/3D),看到你的 Android 标签,我建议你自己滚动。
原因很多:
- 您可以进行自定义以满足特定的精度/内存/性能限制。
- 如果是多线程的,你可以让你的类不可变且线程安全
- 即如果内存有限,您可以将所有三个维度存储在一个 int 或 long 中
- 如果 cpu 受限,您可以使用普通的单独数字
- 如果 GC/Garbage 受限,您可以回收和池实例(可变)
最后,这些原语中的大多数都非常易于编写、测试等。您需要编写的主要方法(除了样板构造函数/get/set/...) - 距离 - 点积 - 单元化(使长度 == 1 用于各种数学运算) - 我过去曾使用 DistanceSquared 进行比较函数...这从大多数距离方法中删除了 sqrt 运算符,同时计算了一个足够用于比较点距离等的相对距离。
关于java - 除了 3D 点之外,是否有 Point 类的等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759375/