如何在2D中找到给定A,B坐标的平行线

时间:2018-11-03 15:37:55

标签: javascript algorithm math svg geometry

我有A(x1,y1)和B(x2,y2)坐标。我有直线的长度和角度。

我需要找到一条平行线,该平行线可以在特定距离为我提供C(x3,y3)和D(x4,y4)坐标。它是一条倾斜线。

任何伪代码或数学公式都可以提供帮助。

Ex:给定坐标 A(200,0)B(0,450)。线的角度是113.962。行长492.4。

帮我找到距A,B坐标50度的C和D坐标。

请在下面找到图像,它与角度成一条线。

Angular line

Updated Image for finding parallel line

1 个答案:

答案 0 :(得分:3)

您的直线具有基点(x1,y1)和方向矢量:

(dx, dy) = (x2-x1, y2-y1)

归一化此矢量除以矢量长度的分量:

len = sqrt((x2-x1)^2 + (y2-y1)^2)
(udx, udy) = (dx / len, dy / len)

垂直向量:

(px, py) = (-udy, udx)  
(note also reverse vector (udy, -udx) to shift onto another side)

距离dist处的平行线的基点:

(nx, ny) = (x1 -udy * dist, y1 + udx * dist) 

第二点,如果您需要:

(sx, sy) = (nx + dx, ny + dy)