【发布时间】:2011-05-21 21:43:16
【问题描述】:
我想为一个矩形做一个碰撞检测系统来使用一些物理特性,所以每个边都会有一个法线。如何确定正方形的哪一侧被物体击中。另一个对象是一个圆圈。
谢谢。;
【问题讨论】:
-
首先,我们如何知道您使用的是什么语言...
-
这是 2D 碰撞检测,还是 3D 碰撞检测?
-
2D,我认为这与语言无关。
我想为一个矩形做一个碰撞检测系统来使用一些物理特性,所以每个边都会有一个法线。如何确定正方形的哪一侧被物体击中。另一个对象是一个圆圈。
谢谢。;
【问题讨论】:
如果不知道您正在使用的库(或查看您的代码,如果您自己编写的话),很难确切地知道,但大概您只是在寻找两个对象的主体中的重叠。
算法必须进行某种数学运算才能确定一个对象的坐标是否在另一个对象的边界内。假设您只是在 x-y 平面上工作,您可以将一个对象的中心与重叠区域进行比较。正delta x,右;负增量 x,左。 y 轴将以相同的方式工作。如果角落发生碰撞,这不一定会给出保证的答案。
【讨论】:
我知道这已经晚了,但是可以将碰撞到矩形的点从它碰撞的矩形的中心减去。从减法中取出新向量并将其与矩形的四个法线进行比较,无论哪个最接近的是被击中的一侧。当你只有几个方面但当你有很多方面要与之比较时,一种快速的方法会减慢速度。我同意这个问题与代码无关,他没有要求我们为他编写代码。他要求一个算法。
【讨论】: