2

所以我需要以某种方式将指向 3d 世界中的实体(我也有距离)的 PI​​TCH 和 YAW 角度转换为 2d 屏幕 X 和 Y 位置。有谁知道我会怎么做?

4

2 回答 2

4

例子。

假设:屏幕尺寸为 1024x768 ( X= 0..1024, Y= 0..768);水平视角为 180 度(YAW= -90..90)。

然后你可以转换YAWX这种方式: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。

因此,您可以转换PITCHY这种方式: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
于 2013-05-20T23:37:27.160 回答
0

据我了解,我想您想知道如何从球坐标系(标量长度、俯仰、偏航)转换为笛卡尔坐标系(x、y、z)。如果是,那么这里是参考链接:球坐标系

于 2013-05-20T21:30:45.027 回答