我正在寻找一种数学方法,以确定我穿过一个物体的方向。
我已经尝试了各种方法,但都没有成功。我知道这可能是一种三角学的简单应用,但无从下手。
具体情况如下:
有一个旋转的物体,我需要确定我是从它的后面还是前面进入。
在这种情况下,轨迹由鼠标位置(移动时)定义,因此我可以从上一个点和当前点绘制一条直线。
希望有人能够帮助我:)非常感谢。
movement = currentPoint - previousPoint
然后,为了确定它是否与身体的方向(由“normal”指定,即正面的法向量)对齐,只需使用点积:如果 movement dot normal > 0
,则运动方向与正面的法向量相同,因此从后面撞击身体。否则,它从前面撞击身体。
请注意,我们不会对任何向量进行归一化,因为当您只想知道它是从后面还是从前面撞击对象时,这不是必要的。一个很好的奖励是,当您对movement
进行归一化时(我假设normal
已经被归一化),movement
和normal
之间的点积表示入射角:angle = arccos(movement dot normal)
这种方法处理相对运动,因此仍然需要测试与对象的相交以确定是否完全撞击它。要实现这一点,请测试线-对象相交。(取决于您的对象,因此我无法提供更多信息。)