【问题标题】:What's the fastest way checking if two moving AABBs intersect?检查两个移动的 AABB 是否相交的最快方法是什么?
【发布时间】:2015-01-28 14:55:46
【问题描述】:

我有两个正在移动的 AABB,检查它们是否会在框架下相交的最快方法是什么?

移动我的意思不仅仅是检查通常的矩形交集方法,我的意思是某种简单的易扫描测试,只返回一个布尔值,没有命中时间或其他任何东西。

我的想法是简单地这样做:

但是那个Hexagon相当复杂,我不知道如何计算AABB - Polygon相交,有没有更简单的方法?

你最喜欢的任何编程语言,我都可以轻松移植。

谢谢。

【问题讨论】:

  • 赞成曲线的颜色。不知道你在说什么

标签: collision-detection


【解决方案1】:

如果您将生成的形状视为两个矩形(A 的原始位置和 A 的最终位置)和一个倾斜的矩形(由运动给出)的联合,您可以简化问题。 由于我的声誉,我无法发布图片,所以我只留下一个图片链接来解释我的意思: http://i.imgur.com/aRQCe9i.png

然后你必须评估以下任何形状是否与 B 碰撞:

  • A 对 B 的原始位置(AABB - AABB 碰撞)
  • A 对 B 的最终位置(AABB - AABB 再次碰撞)
  • 与 B 的倾斜矩形(OBB 碰撞)

对于最后一种情况,您可以使用分离轴定理,因为生成的形状应该始终是凸的。

如果您想知道凸形应该使用哪些点,我建议使用与移动方向匹配的点相邻的点(即,如果矩形向上和向左移动,则选择两个点与原始位置的左上角相邻的点和与最终位置的右下角相邻的两个点)具有正交运动的特殊情况。

【讨论】:

    猜你喜欢
    • 2010-11-24
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 2014-06-05
    相关资源
    最近更新 更多