本文介绍了如何从两个矢量3获得俯仰角的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好专家!
我有4个vector3:
Hello experts!
I have 4 vector3:
Vector3 posFront = PositionBlocks.front.GetPosition();
Vector3 posRear = PositionBlocks.rear.GetPosition();
Vector3 posLeft = PositionBlocks.left.GetPosition();
Vector3 posRight = PositionBlocks.right.GetPosition();
posFront是鼻子。
posRear是尾巴。
posLeft是左翼尖。
posRight是右翼尖。
这些vector3是全球坐标。
目前我只是尝试获得俯仰角(上/下)。
我有这个代码:
posFront is the nose.
posRear is the tail.
posLeft is the left wing tip.
posRight is the right wing tip.
These vector3 are global coordinates.
At the moment I just try to get the pitch angle (up/down).
I have this code:
const int X = 0;
const int Y = 1;
const int Z = 2;
Vector3 dir = Vector3.Subtract(posFront, posRear);
double x = dir.GetDim(X);
double y = dir.GetDim(Y);
double z = dir.GetDim(Z);
double angle = Math.Atan2(z, Math.Sqrt(y * y + x * x)) * 180.0 / Math.PI;
Logger.log(angle.ToString());
但这给了我一系列:
0到90,回到0,然后到-90再回到0
我需要的是-180到-180的范围180.
我希望有人可以帮助我
谢谢
But this gives me a range of:
0 to 90, back to 0, then to -90 and back to 0
What I need is a range from -180 to 180.
I hope someone can help me
Thanks
推荐答案
这篇关于如何从两个矢量3获得俯仰角的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!