获得两条2d线之间的角度。 (关于线的方向)

时间:2015-07-25 20:45:03

标签: math rotation 2d line angle

我想获得两条线相对于线条方向的角度。线条的2个向量的正常点积总是返回两条线之间的最小角度,这不是我正在寻找的。

示例图片: What I am looking for...

蓝线:我的线条 红线:指示方向 绿线:尝试弯曲线失败,指示我想要的旋转方向。 p0~p3:线点的x,y坐标。 a:我希望获得的角度。

我想构建一个能够正确旋转的函数,使用您喜欢的任何编程语言。

1 个答案:

答案 0 :(得分:1)

也许有一个更优雅的解决方案,但以下工作:

计算两个向量的dot productcross product。 如果叉积为负,则使用点积计算内角(称为“alpha”),否则如果叉积为正,则将外角计算为360°-alpha。

请注意,叉积取决于操作数的顺序;如果您的图纸中有订单,则上述内容有效。