【问题标题】:3D rotation in OpenGLOpenGL中的3D旋转
【发布时间】:2014-07-15 14:51:38
【问题描述】:

所以我试图根据四元数信息对openGL中的图像进行一些旋转操作,我想知道,有没有办法通过向量定义我的图像的位置(比方说(001)) ,然后将四元数应用于该向量以围绕任意原点旋转我的图像?我一直在使用 GLM 进行所有数学工作。 (使用 C++)

或者有没有更好的方法来做到这一点,我还没有想出来?

【问题讨论】:

标签: c++ opengl rotation quaternions glm-math


【解决方案1】:

如果你想绕点P = {x, y, z}旋转,那么你可以简单地平移-P,绕原点旋转,然后平移回P

【讨论】:

    【解决方案2】:

    应用转换的顺序是:

    scale -> translation to point of rotation -> rotation -> translation
    

    所以你的最终矩阵应该被计算出来:

    glm::mat4 finalTransform = translationMat * rotationMat * translationToPointOfRotationMat * scaleMat;
    

    【讨论】:

      猜你喜欢
      • 2021-06-24
      • 1970-01-01
      • 2013-09-05
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      相关资源
      最近更新 更多