计算从初始向量垂直平移的新二维向量
Calculate new 2D vector translated perpendicularly from initial vector
我有一个二维向量,由两组点 (x1, y1) 和 (x2, y2) 定义。我需要计算一个垂直平移 H 距离的新向量。
例如,如果我的点是 (0, 0) 和 (0, 10),则 H=5 的垂直平移将导致新向量 (5, 0) 和 (5, 10)。
我正在尝试寻找更通用的公式。我知道我应该使用航向(或方位角)角。那是从 y 轴顺时针到我的矢量的角度。但是我不能全神贯注于三角。
理想情况下,我希望 H > 0 是右翻译,H < 0 是左翻译(假设站在 x1/y1 看着 x2/y2)。
从线段的两个端点开始,A=(x1, y1) 和 B=(x2, y2). (注意向量和线段不是一回事。)
计算向量:v = B-A = (x2-x1, y2-y1)
计算其大小:|v| = sqrt(v12 +v22 )
对其进行归一化(即,将其大小更改为一,保持其方向不变):v' = v/|v| = (v1/|v|, v2/|v|)
顺时针旋转90度:v'' = (v'2, -v'1)
乘以H:z = Hv'' = (Hv''1, Hv''2)
将其添加到您的两个端点:A' = A+z = (x1+z1, y1+z2) B'= B+z = (x2+z1 ,y2+z2)
下标可能看起来有点混乱。那是因为你和我使用不同的约定:你使用字母表示尺寸,使用下标表示点;我正在做相反的事情。通常我会尝试使用我试图回答其问题的人的语言,但在这种情况下,当涉及到多个要点时,你的约定会变得混乱。如果真的不清楚,我可以尝试改写。
我有一个二维向量,由两组点 (x1, y1) 和 (x2, y2) 定义。我需要计算一个垂直平移 H 距离的新向量。
例如,如果我的点是 (0, 0) 和 (0, 10),则 H=5 的垂直平移将导致新向量 (5, 0) 和 (5, 10)。
我正在尝试寻找更通用的公式。我知道我应该使用航向(或方位角)角。那是从 y 轴顺时针到我的矢量的角度。但是我不能全神贯注于三角。
理想情况下,我希望 H > 0 是右翻译,H < 0 是左翻译(假设站在 x1/y1 看着 x2/y2)。
从线段的两个端点开始,A=(x1, y1) 和 B=(x2, y2). (注意向量和线段不是一回事。)
计算向量:v = B-A = (x2-x1, y2-y1)
计算其大小:|v| = sqrt(v12 +v22 )
对其进行归一化(即,将其大小更改为一,保持其方向不变):v' = v/|v| = (v1/|v|, v2/|v|)
顺时针旋转90度:v'' = (v'2, -v'1)
乘以H:z = Hv'' = (Hv''1, Hv''2)
将其添加到您的两个端点:A' = A+z = (x1+z1, y1+z2) B'= B+z = (x2+z1 ,y2+z2)
下标可能看起来有点混乱。那是因为你和我使用不同的约定:你使用字母表示尺寸,使用下标表示点;我正在做相反的事情。通常我会尝试使用我试图回答其问题的人的语言,但在这种情况下,当涉及到多个要点时,你的约定会变得混乱。如果真的不清楚,我可以尝试改写。