【问题标题】:How do you calculate a position?你如何计算一个位置?
【发布时间】:2015-02-02 17:50:42
【问题描述】:

我想知道当您知道视点(相机)的 x,y,z 坐标和视点的旋转(rx,ry,rz)时如何计算点的位置。而且你知道距离(例如 4)。

【问题讨论】:

    标签: java opengl math 3d jogl


    【解决方案1】:

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

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

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 2022-10-15
      • 2019-03-30
      相关资源
      最近更新 更多