子弹物理中物体之间的最小距离
Miminum distance between objects in Bullet Physics
是否有可能计算子弹物理中两个碰撞对象之间的最小距离?
凹面物体呢?也许它需要凸分解?
甚至点到物体的距离计算器也很有用。
作为库的作者告知,在子弹头链接中没有正距离信息。从碰撞测试中提取这些信息很容易,但是您需要自己修改Bullet碰撞检测。对于不同的形状对,有许多碰撞算法,但每一种算法都在某个阶段处理有关距离的信息。
然而,还有另一种获得两个物体之间近似距离的推荐方法。你可以从第一个物体的中心到第二个物体的中心进行射线测试,存储碰撞点(它应该位于第二个物体的船体上)。接下来执行反向测试(从第二个对象到第一个对象)并计算两个存储点之间的距离。当然你需要检查被击中的对象是否就是你想要计算距离的对象。如果它们之间有障碍物,它将不起作用。
要执行射线测试,您需要btCollisionWorld
的rayTest(const btVector3 &rayFromWorld, const btVector3 &rayToWorld, RayResultCallback &resultCallback)
方法。用法示例可以在这里找到。
如果你想要更准确,你可以使用convexSweepTest
法进行扫球测试,而不是投射一条射线。
你需要注意,这些方法只提供近似解,因为不能保证命中点是最接近的。然而,它们对于大多数应用来说已经足够了。
相关文章:
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 用C++程序计算圆锥体的体积、球体的体积、八边形的面积和两点之间的距离
- 计算所有对之间的曼哈顿距离
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- Levenshtein 两个文件的距离花费了太多时间
- 两个有符号数字之间的距离
- 计算车辆之间的距离并设置速度,使距离保持不变,例如 5 米
- 计算两个迭代器之间的距离时"Vector Iterators Incompatible"
- 浮动距离为80位长双精度
- 查找彼此之间具有不同最小距离的随机数
- 相同字符之间的最小距离
- 如何根据距离矩阵确定节点?
- 如何排列二进制字符串以最小化它们之间的距离
- 曼哈顿距离比曼哈顿距离+线性冲突效果更好
- 使用C++中的链表对与原点的距离、x 和 y 坐标进行排序
- 应该如何编写用于计算最近点距离的C++函数?
- 有效地计算像素到其对应核线的距离
- 堆和堆栈之间的距离
- std::使用迭代器映射查找距离,程序不会终止
- 子弹物理中物体之间的最小距离