我正在尝试让我的机器人遵循网页上绘制的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编写的。
答案 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)