由公式
v1*v2=|v1||v2|cos(θ)
可得
θ=acos((v1*v2)/(|v1||v2|)
这样求得的角度范围为[0~180],无法得到顺时针还是逆时针旋转方向。
可通过向量的叉乘的正负来判断旋转方向
注意,这里仅适用于二维向量,三维向量的叉量是向量,无法直接判断正负。
v3=v1×v2
伪代码
angle = angle(v1, v2);//夹角
cross = cross(v2,v2);//叉乘
angle = cross>0?-angle:angle;//判断正负