我有两个向量,我想获得这些向量之间的角度,我目前正在使用以下公式进行计算:
acos(dot(v1.unitVector, v2.unitVector))
Run Code Online (Sandbox Code Playgroud)
我想要绿色角度而不是红色角度,但我不知道我应该使用什么公式......
谢谢你。
编辑:所以,当向量仍然在某个位置时(就像前两对向量一样,没关系,但是每当它处于第三对这样的配置中时,它就不再给我正确的角度)
使用点积,您总是会得到一个与向量顺序和两种可能性中较小者无关的角度。
对于你想要的,你需要由函数实现的复数参数atan2函数。从a=ax+i*ayto的角度b=bx+i*by是a时间共轭的参数b(b向后旋转的角度a,不考虑比例),在坐标中是
(ax-i*ay) * (bx+i*by) = ax*bx+ay*by + i*(ax*by-ay*bx)
Run Code Online (Sandbox Code Playgroud)
所以角度是
atan2( ax*by-ay*bx, ax*bx+ay*by ).
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1895 次 |
| 最近记录: |