gjk.c –平原C的Gilbert-Johnson-Keerthi
这是在普通C语言中粗略但快速地实现GJK冲突检测算法的功能。只有一个C文件,少于200行,没有依赖关系。 目前处于2D模式,即将推出完整的3D版本。此2D版本使用Minkowski求和,并在Minkowski空间中构建一个三角形单形,以判断两个任意凸多边形是否发生碰撞。 3D版本将大致相同,但将在3维Minkowski空间内构建一个四面体单形。 它当前仅指示是否存在碰撞。 距离和接触点的C代码即将推出。
免责声明
他妈的许可证和版权。 我这样做是出于学习目的,这是公共知识,任何用法都是完全免费的。
使用范例
这是的示例案例的。
将两个测试的多边形定义为纯C矢量结构类型的数组。 GJK的这种实现实际上并不关心数组中顶点的顺序,因为它将所有点集都视为凸多边形。
struct _vec2 { float x; float
1