Vector1(-0.241844763,-0.664463024,0.707106781) vector2(0.5,0.5,0.707106781)
我可以看到CAD系统报告X-Y平面为155度。 如何通过编程进行计算?
谢谢
答案 0 :(得分:0)
您可以使用y与x的比值的反正切值来获得描述每个矢量旋转的角度(假设您希望在Oxy平面上绘制一个角度)。 然后,您可以将一个向量的角度减去另一个向量的角度:
atan2(vector1.y, vector1.x)-atan2(vector2.y, vector2.x)
其中atan2
通常定义为
atan2(y, x) {
if(x==0) {
if(y<0) {
return PI/2;
} else {
return -PI/2;
} else {
angle=atan(y/x);
if(x<0 && y>=0) {
angle+=PI
} else if(x<0 && y<0) {
angle-=PI
}
return angle;
}
}
返回-PI和PI之间的角度;因此它覆盖了整个圆圈,而不是一半。