计算从初始向量垂直平移的新2D向量

时间:2018-05-08 23:30:06

标签: math vector trigonometry

我有一个2D矢量,由两组点(x1,y1)和(x2,y2)定义。我需要计算一个由H距离垂直平移的新矢量。

例如,如果我的点是(0,0)和(0,10),则H = 5的垂直平移将导致新的向量(5,0)和(5,10)。

我正在努力寻找更通用的公式。我知道我应该使用航向(或方位角)。这是从y轴顺时针到我的矢量的角度。但是我不能把头包裹在触发器周围。

理想情况下,我想要H> 0是正确的翻译,H< 0左翻译(假设站在x1 / y1处看x2 / y2)。

1 个答案:

答案 0 :(得分:1)

从您的线段的两个端点开始,A =(x 1 ,y 1 )和B =(x 2 , ÿ<子> 2 )。 (请注意,向量线段不是一回事。)

计算向量:v = BA =(x 2 -x 1 ,y 2 -y 1

计算其大小:| v | = sqrt(v 1 2 + v 2 2

将其标准化(即,将其大小更改为1,保持其方向不变):v'= v / | v | =(v 1 / | v |,v 2 / | v |)

顺时针旋转90度:v''=(v' 2 , - v' 1

乘以H:z = Hv''=(Hv'' 1 ,Hv'' 2

将其添加到两个端点:A'= A + z =(x 1 + z 1 ,y 1 + z < sub> 2 )B'= B + z =(x 2 + z 1 ,y 2 + z 2

下标可能看起来有点令人困惑。那是因为你和我正在使用不同的约定:你使用字母来表示维度和下标;我正在做相反的事情。通常我会尝试使用我试图回答的问题的人的语言,但在这种情况下,当涉及到几个问题时,你的惯例会变得混乱。如果真的不清楚,我可以尝试重写它。