如何计算两个向量之间的钝角?

4
如何计算给定两个向量和 x 轴间的钝角。 可以将第一个向量视为 x 轴。通过点积和 acos 可以得到对角线。
2个回答

5

在应用acos之前,请检查点积是否为负。如果是负数,则角度是钝角 :)

此外,由于acos的范围是0到pi,只要不需要反射角(>pi),您就可以很好地完成。


抱歉,我无法获得完整的角度…… 我有一系列点和两个外部点(一个是原点,另一个在x轴上)。如果圆周上有9个点,我应该得到0、45、90、135、180、225、270、315、360度。 - OliveOne
1
假设你已知的点是原点O(0,0),向量1的末端A(x,0) - 在x轴上,另一个点B(m,n)。如果你想要OA和OB所成的角度,那么这个角度将会是acos(m/sqrt(mm + nn))*180/pi度。 - KJ Saxena

0

在正确解析角度时,必须同时使用点积和叉积。 向量u和v之间的夹角为

||atan2(s,c)||
where `s = ||u X v||`  (magnitude of the cross product)
and `c = u.v`        (dot product)

atan2 是一个四象限反正切函数。

||*|| 表示向量的大小(范数)。

这将始终返回 0 到 180 度之间的角度。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接