确定两条线之间的SVG路径上的角度

时间:2015-06-21 17:25:56

标签: javascript math svg

我正在尝试让我的机器人遵循网页上绘制的SVG路径。为了简单起见,假设SVG是这样的:

<svg xmlns="http://www.w3.org/2000/svg">
  <path id="path" d="M 100 100 L 300 300 L 100 500 z">
</svg>

这是一个三角形。

机器人将从100,100开始。目标是让他移动到300,300,但我不知道如何获得机器人需要从100,100转向开始移动的角度300,300。

我收录了一张图片,显示了我想要获得的角度。虽然这只是一个显然是90度的简单示例,但我正在使用它来弄清楚如何在更复杂的图纸上进行。

我是用javascript编写的。

Badly drawn angle image

1 个答案:

答案 0 :(得分:1)

计算两点之间的角度时,使用 arctan(斜率),其中斜率= (P2y - P1y)/(P2x - P1x)

其中:

P2y = coordinate "y" of point 2
P1y = coordinate "y" of point 1
P2x = coordinate "x" of point 2
P1x = coordinate "x" of point 1

注意arctan函数返回的符号(+或 - ),你必须使用常识和逻辑。

还要注意你的路径是使用绝对坐标(L),这意味着第3点将具有相同的&#34; x&#34;坐标为1点,而不是如图所示,当它更可能是相对坐标(l)