因此,我需要以某种方式将指向三维世界中实体的PITCH和YAW角度(我也有距离(转换为二维屏幕X和Y位置。有人知道我会怎么做吗?
示例。
让我们假设:屏幕大小为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
据我所知,我想您想知道如何从球面坐标系(标量长度、俯仰、偏航(转换为笛卡尔坐标系(x,y,z(。如果是,那么这里是要参考的链接:球面坐标系。