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

标签 javascript algorithm math svg geometry

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

我需要找到在特定距离处给我 C(x3,y3) 和 D(x4,y4) 坐标的平行线。它是一条斜线。

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

例如:给定坐标 A(200,0) B(0,450)。这条线的 Angular 是 113.962 。线的长度 492.4.

帮我找到距离 A、B 坐标 50 处的 C 和 D 坐标。

请看下图,是一 strip Angular 线。

Angular line

Updated Image for finding parallel line

最佳答案

你的直线有基点 (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)

关于javascript - 如何在 2D 中找到给定 A、B 坐标的平行线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53132837/

相关文章:

algorithm - 开发西洋跳棋(跳棋)引擎,如何开始?

java - 如何在文本文件中搜索多个字符串

javascript - 围绕给定坐标旋转像素

javascript - 鼠标悬停在哪个体素上?

javascript - Angular $scope.$watch 是如何工作的?

javascript - 将事件类添加到菜单部分

javascript - 搜索和替换

javascript - 是否可以允许点击路径/项目?

Javascript:在(50000 * 50000 网格)二维数组中寻路?

java - 除以减法 - 将余数除以减法?