OpenGL中的3D旋转

3D rotation in OpenGL

本文关键字:旋转 3D 中的 OpenGL      更新时间:2023-10-16

所以我试图做一些旋转操作的图像在openGL基于四元数信息,我想知道,有没有一种方法来定义我的图像的位置矢量(让我们说(001)),然后将四元数应用到该矢量旋转我的图像周围的任意原点?我一直在用GLM做所有的数学工作。(使用c++)

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

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

转换的应用顺序如下:

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

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

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