-3
A
回答
0
1
有没有简单的方法来做非凸面碰撞检测。大多数碰撞检测算法在两个凸形上工作。
一个简单但低效的方法是将每个多边形分解成凸多边形,并分别在相反的方向上测试每个凸多边形与另一个多边形。例如,你的“A”图可以分成3个凸多边形,七角星可以分解成8个。如果发生24个可能的碰撞中的任何一个,那么两个原始多边形相交。
另一种方法是使用保守的边界区域作为第一个近似值。确定围绕“A”和七角星的所有点的两个最小圆。确定圆形碰撞很容易:计算中心之间的距离并查看与圆形半径之和的比较结果。如果圆不相交,那么多边形绝对不会相交。如果圆圈相交,那么多边形可能相交,因此需要进一步的测试。
你也可以结合这两种方法。在测试任何凸面子多边形之前,测试子多边形的边界圆。
+0
这不是库,代码等。“在C中” –
相关问题
- 1. Java - 形状碰撞检测
- 2. 如何检测形状碰撞 - Android
- 3. easeljs检测碰撞两个矩形
- 4. Windows Phone 8:C#XAML如何检测形状碰撞
- 5. KineticJS - 形状之间的碰撞检测
- 6. 不规则形状碰撞检测
- 7. 每种形状的碰撞检测(2D)
- 8. 如何测试两个任意形状的重叠(或碰撞)
- 9. 如何检测c#中两个图像之间的碰撞?
- 10. 检测正方形的哪一侧与碰撞检测碰撞
- 11. 碰撞检测Libgdx矩形
- 12. C++ 2D多边形碰撞检测
- 13. C++车削矩形的碰撞检测
- 14. 定向碰撞检测
- 15. 碰撞没有正确检测到多个几何形状
- 16. 如何创建一个圆形碰撞检测? C++
- 17. 在Xcode中,如何检测两个iPhone之间的碰撞?
- 18. 如何做c#碰撞检测?
- 19. Tilemap碰撞检测C#XNA
- 20. 碰撞检测Objective-C(cocos2d)
- 21. 如何检测碰撞,但不会在box2d中碰撞?
- 22. 检测两个对象的碰撞点
- 23. pygame的 - 碰撞检测与两个圆
- 24. 碰撞检测 - 如何?
- 25. AS3:如何检测碰撞?
- 26. 如何检测UIImageView碰撞
- 27. 如何检测碰撞力?
- 28. 碰撞检测
- 29. 碰撞检测
- 30. 碰撞检测
请让你的问题更具体,提供你迄今为止所做的解决你的问题和[MCVE](http://stackoverflow.com/help/mcve)。 – tnull
_“两个形状之间的距离”_与形状中心的距离?与形状之间的质心距离?最接近的形状顶点之间的距离?有很多方法可以定义“两个形状之间的距离”。他们都有不同的答案。你需要澄清你要问的问题以获得任何有意义的答案。 – Knetic
...或甚至从顶点到边缘的最短距离。或者,对于一个形状的每个顶点,确定它所在的其他形状的每个边缘矢量的哪一侧。如果它们全部位于“内部”,就会发生碰撞。反之亦然。 –