你如何计算一个位置?

时间:2015-02-02 17:50:43

标签: java opengl math 3d jogl

当你知道观察点(摄像机)的x,y,z坐标和观察点的旋转(rx,ry,rz)时,我想知道如何计算点的位置。你知道距离(例如4)。

1 个答案:

答案 0 :(得分:0)

解决此问题的最简单方法是指定相对于相机的点,然后应用相机的逆变换以将该点放在世界空间中。

从相机的角度来看,你描述的那一点是

vec4(0, 0, -4, 1)

如果您的转换采用齐次矩阵格式,

M = [ R_3x3 T  ]
    [ 0 0 0 1  ]

然后我们可以按如下方式计算逆(Source):

inv(M) = [ inv(R_3x3)   -inv(R_3x3) * T ]
         [   0      0      0      1     ]

这是我们对世界空间矩阵的视空间。我们只是将此转换应用于视图空间点:

V_worldspace = M * vec4(0, 0, -4, 1)