SAT分离轴是什么

SAT:Separating Axis Theorem (分离轴理论),通过判断任意两个凸多边形在任意角度下的投影是否均存在重叠,来判断是否发生碰撞。即两个不相交的多边形一定能找到一条轴,它们在这条轴上的投影不相交

注意:分离轴定理只适合凸多边形,所以如果是凹多边形的话需要转换成多个凸多边。

 来自:https://blog.csdn.net/yorhomwang/article/details/54869018

有三种找到碰撞盒的方法

球形

也就是将物体都等效为外接圆/外接球,利用球/圆来检测两个多边形是重合是及其方便的,圆心的距离和半径之和比较即可。

  • 优点:运算快
  • 缺点:精度低

Axis Aligned Bounding Box (AABB)

将物体用方形的盒子包围,这个方形的盒子的四条边都是和坐标轴平行的

Oriented Bounding Box (OBB)

找一个最小的包围物体的方形。这在自动驾驶中是很自然的,上层的感知给出的数据通常就是这种OBB的图形。

分离轴

每个边的法向量。一条从 p1 指向 p2 的向量来表示多边形的某条边,我们称之为边缘向量。在分离轴定理中,还需要确定一条垂直于边缘向量的法向量,我们称之为“边缘法向量”。投影轴平行于边缘法向量。投影轴的位置不限,因为其长度是无限的,故而多边形在该轴上的投影是一样的。该轴的方向才是关键的

将两个多边形分别在每个分离轴上进行投影,只要在一个分离轴上出现不相交,则为不碰撞。

 

优点

  • 十分得快:只要间隙一旦被检测出来,那么就能马上得出结果,消除不必要的运算

缺点

  1. 只适用于凸多边形,凹多边形无法使用此方法,除非你把它们分成一些小的凸多边形,然后依次检验这些小的多边形。
  2. 法告诉你是那条边发生的碰撞,仅仅是告诉你重叠了多少和分开它们所需的最短距离。

 

Reference:

  1. https://blog.csdn.net/qq_36458461/article/details/106266319
posted @ 2022-03-23 23:27  cancantrbl  阅读(484)  评论(0编辑  收藏  举报