如何通过自己的中心旋转所有对象,然后将它们转换到真实的位置(它不工作) [英] how to rotate all objects by their own centers and then translate them to the real position (it isn't working)
问题描述
使所有不与原点中心对齐的对象(vector3(0.0f,0.0f,0.0f))的方式是什么,绕自己的中心轴旋转?
伪代码中的问题:
vector3 vector3 objectCenter =(10,5,0); //当前对象中心
vector3 vector3 objectPosition =(40,5,0); // Place to translate the object
vector3 objectRotation; = 45.0f;
matrix.loadIdentity();
matrix.translate(objectCenter);
//应用转换
matrix.rotateX(objectRotation);
matrix.translate(-objectCenter);
//itś正常工作直到这里
//当我尝试将对象翻译到真实位置时,旋转不正确。
matrix.translate(objectPosition);
我使用C ++,glm(到矩阵管理)和OpenGL。