围绕原点旋转多边形

Rotating a polygon about origin

我正在尝试围绕 opengl 中的原点旋转一个对象(一组顶点)。

该物体是摩天轮中的车厢,在旋转过程中不得保持直立。到目前为止,我所得到的只是以下转换,它可以旋转托架但不会保持直立。这使用绕原点 72 度角的基本旋转变换。模型矩阵看起来像这样:

g_modelMatrix[i] = glm::mat4(1.0f) * glm::rotate(glm::radians(-72.0f), glm::vec3(0.0f, 0.0f, 1.0f)); 

其中 glm::mat4(1.0f) 是单位矩阵

最终结果是变形了马车,但没有让它直立。 什么样的转换适合这种问题?

这是我用来解决问题的方法。

rotate(i * 72°) * translate(r, 0, 0) * rotate(-i * 72°)