DragonWind
关于GJK
Core:两个形状相交,必然有一个点在两个形状都有,他们的差必然包含(0,0)
求两个向量的点积
a · b =
a
b
cosθ
x1·y1 + x2·y2
求两个向量的叉积
a × b =
a
b
sinθ
a到b x1·y2 - x2·y1
b到a 负的
求两个向量的tan,注意方向
(a × b) / (a · b)
(a × b) / (b · a)
画两个三角形,把他们的差画出来
给定多个点 连线不相交
找到最右的点或者最下的点
【随便】选定一个方向,
水平或者垂直
,计算所有的Tan
排序,注意负号
连起来
给定多个点 最大凹边形
判断点在凸边形内部
收敛