2013-05-20 72 views
2

所以我需要以某種方式轉換指向3D世界中的實體(我也有距離)到2D屏幕X和Y位置的PITCH和YAW角度。有誰知道我會怎麼做呢?PITCH和YAW到2D屏幕座標?

+2

有很多方法可以做到這一點;你將不得不提供更多信息。 – Beta

回答

0

據我所知,我想你想知道如何從球座標系(標量長度,俯仰角,偏航角)轉換到笛卡爾座標系(x,y,z)。如果是,那麼這裏的鏈接是指:Spherical coordinate system

4

示例。

讓我們假設: 屏幕尺寸爲1024x768(X = 0..1024,Y = 0..768); 水平視角爲180 grad(YAW = -90..90)。

然後您可以將YAW轉換爲X這樣:X = k * (YAW + 90)

對於這個例子k = horiz_screen_size/horiz_angle_of_view = 1024/180。

然後我們需要找到垂直視角:vert_angle_of_view = vert_screen_size/k = 768 /(1024/180)= 135 grad =>PITCH = -67.5..67.5。

因此,您可以將PITCH轉換爲Y這樣:Y = k * (PITCH + 67.5)


通式:

X = k * (YAW + 0.5*horiz_angle_of_view) 
Y = k * (PITCH + 0.5*vert_angle_of_view) 

其中

k = horiz_screen_size/horiz_angle_of_view 
vert_angle_of_view = vert_screen_size/k