algorithm - 仅在平面一侧的两个轴对齐框之间的碰撞检测

标签 algorithm geometry collision-detection collision bounding-box

我需要检查两个轴对齐框之间的碰撞。其中一个盒子被一架飞机“切开”,它应该只在这架飞机的一侧发生碰撞。我如何检测这两个盒子之间的碰撞是否发生在这个区域?平面可以有任意的旋转和位置。被平面切割时将被丢弃的盒子部分将始终位于平面的同一侧。

最佳答案

  1. 将盒子相交,要么产生一个盒子,要么什么都不产生。
  2. 如果交点不为空,则将其 4 个(或 8 个,如果是 3D)点中的每一个插入平面方程;当且仅当它们中的任何一个为正时,飞机的正“侧”才会发生碰撞。 (如果相交的任何部分在平面的这一侧,那么盒子的至少一个角必须是,因为盒子是凸的。)

关于algorithm - 仅在平面一侧的两个轴对齐框之间的碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26150734/

相关文章:

java - 使用嵌套 for 循环创建带星号的三角形

c++ - 如何在 Polycode 3D 中进行碰撞检测

algorithm - 有什么方法可以使用单个循环比较数组中的每个元素吗?

java - Rabin-Karp 不适用于大素数(给出错误的输出)

c - 在二进制数中找到第一个 "1"

swift - 在圆形 CGPath Swift 上添加 Sprite

c++ - 将多边形从 3d 空间展开到 2d 空间(使用三角形)以获得纹理坐标

c++ - 基本 3D OpenGL 碰撞检测 C++

2d - 地形碰撞检测的简单二维物理教程

algorithm - 如何选择人工网络的输入?