我正在寻找能够给我指明穿过身体的方向的数学。我没有想法,我知道它一定是三角学的非常简单的应用,但我尝试了各种没有成功的事情。不知道什么是最好的方法。
这里有详细信息:
所以我有一个以给定角度旋转的身体,我需要确定我是从它的后面还是从它的前面进入身体。此用例中的轨迹由鼠标位置(移动时)定义,因此我可以从前一个点和当前点画一条线。
希望有人可以帮助我:) & 非常感谢提前。
我正在寻找能够给我指明穿过身体的方向的数学。我没有想法,我知道它一定是三角学的非常简单的应用,但我尝试了各种没有成功的事情。不知道什么是最好的方法。
这里有详细信息:
所以我有一个以给定角度旋转的身体,我需要确定我是从它的后面还是从它的前面进入身体。此用例中的轨迹由鼠标位置(移动时)定义,因此我可以从前一个点和当前点画一条线。
希望有人可以帮助我:) & 非常感谢提前。
这可以使用一些向量运算来解决。首先,构造一个表示运动的向量。
movement = currentPoint - previousPoint
然后看它是否与身体的方向对齐(由'normal'指定,身体正面的法线向量),只需使用点积:如果movement dot normal > 0
,运动是在正面的法线方向上,所以它从后面击中身体。否则它会从前面击中身体。
请注意,我们不会对任何向量进行归一化,当您只想知道它是从后面还是前面撞击对象时,就不需要这样做。一个不错的好处是,当您进行归一化movement
时(我假设normal
已经归一化), 和 之间的点积movement
表示normal
入射角:angle = arccos(movement dot normal)
这种方法处理相对运动,因此您仍然需要测试与对象的交集以了解您是否完全击中它。为此,请测试线对象相交。(取决于你的对象,所以我真的不能多说。)