我想为游戏存储一些对象的x y和z坐标,但是找不到像Point这样的内置类。我可以添加并使用一个很好的标准类来处理从一个对象到另一个对象的点/轴承之间的距离吗?

最佳答案

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

原因有很多:

  • 您可以自定义以满足您的特定精度/内存/性能约束。
  • 如果是多线程的,则可以使您的类不可变并且是线程安全的
  • 即如果内存有限,则可以将所有三个维度存储为int或long
  • 如果cpu受限制,则可以使用普通的旧数字
  • 如果GC /垃圾受到限制,则可以回收和合并实例(可变)

  • 最后,大多数这些原语都非常易于编写,测试等。您需要编写的主要方法(除了样板构造函数/ get / set / ...)
    -距离
    -点产品
    -单位化(对于各种数学运算,make length == 1)
    -过去我将DistanceSquared用于比较功能...这将sqrt运算符从大多数距离方法中删除,同时计算了足以用于比较点距离等的相对距离。

    07-24 14:55