所以我需要以某种方式将指向 3d 世界中的实体(我也有距离)的 PITCH 和 YAW 角度转换为 2d 屏幕 X 和 Y 位置。有谁知道我会怎么做?
问问题
1764 次
2 回答
4
例子。
假设:屏幕尺寸为 1024x768 ( X
= 0..1024, Y
= 0..768);水平视角为 180 度(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
于 2013-05-20T23:37:27.160 回答
0
据我了解,我想您想知道如何从球坐标系(标量长度、俯仰、偏航)转换为笛卡尔坐标系(x、y、z)。如果是,那么这里是参考链接:球坐标系。
于 2013-05-20T21:30:45.027 回答