gpt4 book ai didi

c++ - Bullet Physics 中物体之间的最小距离

转载 作者:行者123 更新时间:2023-11-28 02:20:30 25 4
gpt4 key购买 nike

是否可以计算 Bullet Physics 中两个 CollisionObject 之间的最小距离?

凹面物体怎么样?也许它需要凸分解?

即使是点到物体的距离计算器也会很有用。

最佳答案

正如图书馆作者所说,Bullet link 中没有正距离信息。 .从碰撞测试中提取此信息很容易,但您需要自行修改 Bullet 碰撞检测。有许多针对不同形状对的碰撞算法,但每一种算法都在某个阶段处理有关距离的信息。

但是,还有另一种推荐的方法来获取两个对象之间的大致距离。您可以通过执行从第一个对象的中心到第二个对象的中心的射线测试来完成,存储碰撞点(它应该位于第二个对象的船体上)。接下来执行反向测试(从第二个对象到第一个对象)并计算两个存储点之间的距离。当然你需要检查命中的对象是否真的是你想要计算距离的对象。如果它们之间有障碍物,它将不起作用。

要执行光线测试,您需要 btCollisionWorldrayTest(const btVector3 &rayFromWorld, const bVector3 &rayToWorld, RayResultCallback &resultCallback) 方法。可以找到使用示例here .

如果您希望它更准确,您可以使用 convexSweepTest 方法执行扫描球体测试,而不是转换单个射线。

您需要注意,这些方法仅提供近似解决方案,因为无法保证命中点是最接近的。然而,它们对于大多数应用来说已经足够了。

关于c++ - Bullet Physics 中物体之间的最小距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32700471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com