俯仰和偏航至2d屏幕坐标

  • 本文关键字:2d 屏幕坐标 c++ math
  • 更新时间 :
  • 英文 :


因此,我需要以某种方式将指向三维世界中实体的PITCH和YAW角度(我也有距离(转换为二维屏幕X和Y位置。有人知道我会怎么做吗?

示例。

让我们假设:屏幕大小为1024x768(X=0..1024,Y=0..768(;水平视角为180度(YAW=-90..90(

然后可以通过以下方式将YAW转换为XX = 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转换为YY = 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(。如果是,那么这里是要参考的链接:球面坐标系。

最新更新