gpt4 book ai didi

algorithm - 定向框(或 OBB)之间的交点

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:02:29 24 4
gpt4 key购买 nike

我正在尝试编写一个刚体模拟器,在模拟过程中,我不仅对发现两个物体是否发生碰撞感兴趣,而且还对碰撞的点和法线感兴趣。我找到了很多资源,这些资源实际上说明了两个 OBB 是否正在使用分离轴定理发生碰撞。我也对 OBB 的 3D 表示感兴趣。现在,如果我知道两个碰撞 OBB 的最小重叠区域的轴,有没有办法找到碰撞点和碰撞法线?还有,碰撞主要有两种情况,一是点-面,二是边-边。我试图用谷歌搜索这个问题,但几乎每个解决方案都只检测与 true 或 false 的碰撞。

请有人帮忙!

最佳答案

沿运动方向观察场景(换句话说,应用坐标变化,使该方向变为垂直,并降低高度)。你会得到一个二维图形。

考虑到彼此面对的两个盒子的面,您会看到两个六边形分别分成三个平行四边形。

enter image description here

然后

  • 检测 2D 中边之间的交点。从边缘的截面比率,您可以确定实际的 z 距离。

  • 对于所有顶点,确定它们落在另一个盒子中的面;并且根据 3D 方程,观察线进入面平面的穿刺点,因此距离。 (对 A 和 B 的顶点重复此操作。)

比较距离会告诉你哪个碰撞先发生,并给出第一个相遇点的坐标(在转换后的系统中,返回绝对坐标)。

点对面问题很容易实现,因为面是凸多边形。

关于algorithm - 定向框(或 OBB)之间的交点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45224803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com