判断两个二维向量夹角及是顺时针还是逆时针旋转方向

2024-01-07 21:26:51

1.求两个向量的夹角

由公式

v1*v2=|v1||v2|cos(θ)

可得

θ=acos((v1*v2)/(|v1||v2|)

这样求得的角度范围为[0~180],无法得到顺时针还是逆时针旋转方向。

2.求两个向量的旋转方向

可通过向量的叉乘的正负来判断旋转方向

注意,这里仅适用于二维向量,三维向量的叉量是向量,无法直接判断正负。

v3=v1×v2

3.两者结合,可得夹角的取值范围为[-180,180]

伪代码

angle = angle(v1, v2);//夹角
cross = cross(v2,v2);//叉乘
angle = cross>0?-angle:angle;//判断正负

文章来源:https://blog.csdn.net/zouxin_88/article/details/135437013
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。