math - 获取两条 2d 线之间的角度。 (相对于线条的方向)

标签 math rotation 2d line angle

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

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

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

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

最佳答案

也许对此有更优雅的解决方案,但以下是可行的:

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

请注意,叉积取决于操作数的顺序;假定顺序与您的绘图相同,以上内容有效。

关于math - 获取两条 2d 线之间的角度。 (相对于线条的方向),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31630946/

相关文章:

math - Bullet Physics 四元数 sse 实现疑惑

C++/openGL : Rotating a QUAD toward a point using quaternions

c++ - 在 2d 中缩放对象以精确地覆盖自身

java - 二维数组的奇怪错误

javascript - 递归 Python 函数转换为 Javascript 不起作用,数组问题

php - 金库每日余额登记册

javascript - 旋转 HTML Canvas 中的点

java - 将手机锁定为纵向模式

c++ - glPolygonMode 问题 - GL_FILL "skipping"个顶点

math - 如何按 5 星用户评级对实体进行排序