【发布时间】:2015-07-25 20:45:02
【问题描述】:
我想获得两条线之间相对于线方向的角度。线的 2 个向量的正常点积总是返回两条线之间的最小角度,这不是我想要的。
蓝线:我有的线
红线:指示方向
绿线:在指示我想要的旋转方向的曲线上尝试失败。
p0~p3:线点的x、y坐标。
a:我想要得到的角度。
我想构建一个函数,让我能够正确旋转,使用任何你喜欢的编程语言。
【问题讨论】:
标签: math rotation 2d line angle
我想获得两条线之间相对于线方向的角度。线的 2 个向量的正常点积总是返回两条线之间的最小角度,这不是我想要的。
蓝线:我有的线
红线:指示方向
绿线:在指示我想要的旋转方向的曲线上尝试失败。
p0~p3:线点的x、y坐标。
a:我想要得到的角度。
我想构建一个函数,让我能够正确旋转,使用任何你喜欢的编程语言。
【问题讨论】:
标签: math rotation 2d line angle
也许有一个更优雅的解决方案,但以下工作:
计算两个向量的dot product 和cross product。 如果叉积为负,则使用点积计算内角(称为“alpha”),否则如果叉积为正,则将外角计算为 360°-alpha。
注意叉积取决于操作数的顺序;假设您的图纸中的顺序,上述内容是有效的。
【讨论】: