【发布时间】:2017-03-27 20:51:14
【问题描述】:
我一直在为一个项目编写碰撞检测代码,并试图找出用于检测对象之间碰撞的方法。因为我使用椭球来测试关卡几何,所以我也想将它们用于对象之间的碰撞。问题在于弄清楚到底是怎么做的。我见过的一种方法将椭球体转换为球体和轴对齐的椭球体,这看起来是一个很好的解决方案,但该方法涉及找到特征向量和其他我还不太了解并且宁愿不了解的高级东西必须执行。
通过应用一系列仿射变换,应该很容易将椭球体转换为球体和倾斜椭球体。我读过倾斜的椭圆仍然是椭圆的,所以倾斜相当于旋转和缩放,我假设同样的原理适用于椭圆体。但是,我不确定如何确定新椭圆的旋转和轴长。如果我知道这一点,就很容易使椭圆体轴对齐。 在那之后,我希望能够进行扫描测试,但我不确定它的效率如何,而且我还没有弄清楚要使用的方程式,尽管我可能会用一点工作。
如果椭球体不能解决问题,我也在考虑使用其他碰撞形状,但如果能够将相同的形状用于对象世界和对象对象碰撞,那就太好了。
【问题讨论】:
-
如果您将其中一个椭圆扭曲为球体,您可以使用Circle-ellipse intersection
-
椭圆-椭圆交点有讨论帖here
-
在对该主题进行了更多研究之后,看起来适当的椭球-椭球碰撞检测太复杂而无法实用。我开始使用胶囊,效果很好。
标签: collision-detection game-physics