【问题标题】:Check which face of a rectangular prism is colliding检查矩形棱柱的哪个面正在碰撞
【发布时间】:2018-08-07 03:09:30
【问题描述】:

我正在制作一个带有简单矩形棱柱碰撞的 3D 物理引擎,没有旋转。

现在,我正在非常简单地进行碰撞:(请参阅 this website 以获得漂亮的图形和更多信息)

let a and b be rectangular prisms
collide if:
   (min x of a <= max x of b AND max x of a >= min x of b) AND
   (min y of a <= max y of b AND max y of a >= min y of b) AND
   (min z of a <= max z of b AND max z of a >= min z of b)

这很好用,但我需要知道矩形碰撞到哪个表面才能确定如何反弹。

是否有公式可以检测两个矩形棱镜碰撞到哪个面?

【问题讨论】:

    标签: 3d collision-detection game-physics physics collision


    【解决方案1】:

    如果两个矩形棱柱发生碰撞(即相交),那么哪些面导致碰撞将是模棱两可的:

    您需要知道对象的向量才能确定人脸。

    【讨论】:

      【解决方案2】:

      在我的场景中,我意识到导致碰撞的人脸将是相交最少的人脸。

      这是因为在设置了其他两个轴之后,当试图使最后一个轴重叠时,它会在它们靠近而不是接触之前停止。

      因此,a max == b min所在的轴就是人脸所在的轴。 检查哪个是上或下/左或右就像检查一个对象是否在另一个对象的上方或下方/左侧或右侧一样简单。

      当然,这个解决方案只适用于我没有轮换的场景。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-08
        • 1970-01-01
        • 2017-02-09
        • 2014-08-12
        • 1970-01-01
        • 2013-10-12
        • 2016-08-31
        • 1970-01-01
        相关资源
        最近更新 更多