如何进行正确的二维网格到圆碰撞检测
How to make a correct 2d mesh-to-circle collision detection
我正在为我的游戏做一个网格到圆的碰撞系统。我看到了一些例子,在这些例子中,你迭代网格的所有vert,并检查它们是否在圆圈内。但问题是,有时顶点不在圆内,而是这些顶点形成的线。在这种情况下,碰撞检查的求值结果为false,而应该求值结果为true。如何进行这种类型的良好碰撞检测?(在c/c++中)
如果需要,可以计算直线到圆心的距离。但我认为成本太高了。如果距离低于无线电,你可能会发生碰撞。您需要检查直线的这一部分是否在点之间。距离线到点
实际上,快速谷歌可以让你知道这是堆栈溢出问题的重复:圆线段碰撞检测算法?
只需对所有边进行迭代。不要担心顶点:如果一个顶点在圆内,某条边必然会穿过它(除非整个网格都在圆内——我猜这不太可能)。
相关文章:
- 落砂模拟碰撞检测C++和SFML
- SFML 中的重力和碰撞检测
- 我的碰撞检测中的奇怪行为
- 如何使用qt缩放三维网格
- 如何为球形物体和三角形地形提供高效的碰撞检测和响应
- 圆形与方形碰撞检测以及需要响应C++ |OpenGL。我的问题就是这个"I need to keep the circle outside the square"
- 在Qt3D中进行碰撞检测的预期方法(或好方法)是什么?
- 在碰撞检测方面苦苦挣扎.如何正确检测碰撞?
- 三角形-三角形碰撞检测问题
- 不同类别之间的C SFML碰撞检测
- 使用D3DXVECTOR C 的碰撞检测,发生碰撞后该怎么办
- 当我发生碰撞检测时,矢量迭代器不兼容
- 使用C 中的单元格 /图块 /网格进行碰撞检测的最佳数据结构
- 多维边界框碰撞检测
- 利用mfc子窗口进行二维碰撞检测
- 如何进行正确的二维网格到圆碰撞检测
- 使用MatGeoLib进行三维碰撞检测
- c++二维多边形碰撞检测
- 关于GLM网格中的碰撞检测
- 分组网格上的Ogre碰撞检测