Мне нужно вычислить 3D-точку в моем мировом пространстве, когда у меня есть шаг крена, рыскание, лен.
нужна функция, как это вернуть мне 3dpoint:
Get3DpointFrom_yaw_pitch_roll(yaw,pitch,roll,len)
Спасибо !
я пытаюсь этот код, но проблема в том, что, когда значение рыскания равно 0, у установит ноль!
float x=0,y=0,z=0,r=30;float theta=0; float phi=0;
theta=-Camera_Yaw*3.1415/180;
phi=(3.1415/2)-(-Camera_Pitch*3.1415/180);
x = r*sin(theta)*cos(phi);
y = r*sin(theta)*sin(phi);
z = r*cos(theta);
Если у вас есть сферические координаты, преобразование просто дается
x = r*sin(theta)*cos(phi)
y = r*sin(theta)*sin(phi)
z = r*cos(theta)
Я не занимаюсь полетами, но если я правильно понимаю Википедию, то theta = yaw
а также phi = pi/2-pitch
, С другой стороны, угол крена не нужен, потому что, если вы ищете точку, вы можете поворачивать ее вокруг своей оси столько раз, сколько хотите, она не изменит ее координаты (другая история для твердого тела, конечно).
Других решений пока нет …