Geometry 检查一个凸体是否完全位于另一个凸体内部的最快方法是什么?

Geometry 检查一个凸体是否完全位于另一个凸体内部的最快方法是什么?,geometry,collision-detection,linear-algebra,computational-geometry,Geometry,Collision Detection,Linear Algebra,Computational Geometry,我有两个不同的凸面对象,我需要检查三种不同的状态,关于它们的位置: 固体没有碰撞 固体部分碰撞 其中一个固体完全在另一个固体内部 我使用GJK算法来检查实体是否发生碰撞,这样就消除了1状态。现在的问题是,GJK无法判断是部分碰撞还是一个物体完全在另一个物体内。检查第三状态的最快方法是什么 为两个对象创建轴对齐的边界框(AABB)。 如果它们(AABB)不发生碰撞,则身体在外侧/无碰撞 如果AABB执行以下操作: 将一个实体的所有面/边与其他实体的面/边相交。(如上所述,对于每个面对等,您可

我有两个不同的凸面对象,我需要检查三种不同的状态,关于它们的位置:

  • 固体没有碰撞
  • 固体部分碰撞
  • 其中一个固体完全在另一个固体内部
  • 我使用GJK算法来检查实体是否发生碰撞,这样就消除了1状态。现在的问题是,GJK无法判断是部分碰撞还是一个物体完全在另一个物体内。检查第三状态的最快方法是什么

  • 为两个对象创建轴对齐的边界框(AABB)。
    • 如果它们(AABB)不发生碰撞,则身体在外侧/无碰撞
  • 如果AABB执行以下操作:
    • 将一个实体的所有面/边与其他实体的面/边相交。(如上所述,对于每个面对等,您可以再次使用AABB消除非碰撞)
  • 如果没有别的,那就是一个在另一个里面
    下面的演示是一个很好的资源。我建议阅读:

    建立第一个实体所有面的定向平面方程(在每个面上取三个顶点),并检查第二个实体的所有顶点是否位于平面的正侧

    N个面和M个顶点需要时间O(N.M)