2015-06-21 137 views
1

我试图让我的机器人遵循在网页上绘制的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

为了计算角度之间的两个点使用反正切(斜率),其中斜率= (受体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将具有与点1相同的“x”坐标,而不是如图所示,当它更可能是相对坐标(l)

+0

好的。最后一个应该是500,100,而不是100,500。 – slooker