我试图创建一个函数,通过拖动鼠标沿法线挤压一个面。出于这个问题的目的,我已经将事物简化为2D向量,因此视图向下看到一个立方体,法线是要挤出的面。
我可以很容易地通过面法线方向限制鼠标的移动,我的问题是如何计算出鼠标沿法线方向移动的正确距离。
有两个向量(A &B1)。A是起始点,B1是当前鼠标位置(参见图像向量法向投影)。我需要投影B1,使它从点a出发,沿着法线方向,所以B1变成了B2。对于鼠标位置Bx也是如此(Bx需要从a沿着法线投影,这样它就变成了B2)。这意味着无论鼠标位于B1、B2还是Bx,它们都将沿着法线方向给出相同的距离(在本例中为2)。
我可能处理这个问题的方法不正确,所以请告诉我是否有更好的方法来解决这个问题。
谢谢。
经过归一化(单位长度)方向向量e
后,w=AB1
向量在直线AB2
上的投影长度非常简单,用点积表示:
L = (w.dot.e)
也许你已经有了e
,如果你知道角度-在2D中它的分量是:
e = (cos(fi), sin(fi))