1

当我有 roll pitch 、 yaw 、 len 时,我需要在我的世界空间中计算一个 3d 点。

需要一个像这样的函数为我返回一个 3dpoint :

Get3DpointFrom_yaw_pitch_roll(yaw,pitch,roll,len)

谢谢 !

我尝试这段代码,但问题是当偏航值为 0 时,y 将设置为零!

 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);
4

1 回答 1

1

如果您有球坐标,则转换简单地由下式给出

x = r*sin(theta)*cos(phi)
y = r*sin(theta)*sin(phi)
z = r*cos(theta)

我不从事飞行业务,但如果我正确理解维基百科,那么theta = yawphi = pi/2-pitch. 另一方面,滚动角是不需要的,因为如果你寻找一个点,那么你可以沿着它的轴任意滚动它,它不会改变它的坐标(对于刚体来说不同的故事,当然)。

于 2013-06-12T08:25:20.657 回答