Opengl 使用对象上的点旋转对象

Opengl 使用对象上的点旋转对象,opengl,matrix,rotation,transformation,euler-angles,Opengl,Matrix,Rotation,Transformation,Euler Angles,我正在使用4x4变换矩阵旋转3D对象。对象是围绕其中心点旋转的圆柱体。圆柱体的半径为1,高度为2。然后在(x,y,z)=(0,1,0)处放置一个3D矢量(圆柱体上点的位置) 使用变换矩阵中的Euler角度旋转对象,以便对象可以俯仰、偏航和滚动。使用我的变换矩阵,圆柱体可以俯仰、偏航和滚动,但当将变换矩阵应用于点时,点不会像预期的那样移动 我知道在vertexshader文件中,圆柱体的每个顶点位置乘以变换矩阵以获得世界坐标。然后,将世界坐标与视图矩阵相乘以获得相对于相机的位置,然后再与投影矩阵相

我正在使用4x4变换矩阵旋转3D对象。对象是围绕其中心点旋转的圆柱体。圆柱体的半径为1,高度为2。然后在(x,y,z)=(0,1,0)处放置一个3D矢量(圆柱体上点的位置)

使用变换矩阵中的Euler角度旋转对象,以便对象可以俯仰、偏航和滚动。使用我的变换矩阵,圆柱体可以俯仰、偏航和滚动,但当将变换矩阵应用于点时,点不会像预期的那样移动

我知道在vertexshader文件中,圆柱体的每个顶点位置乘以变换矩阵以获得世界坐标。然后,将世界坐标与视图矩阵相乘以获得相对于相机的位置,然后再与投影矩阵相乘以获得gl_位置

我试着对圆柱体上的点做同样的处理,只使用变换矩阵,我试着对视图矩阵使用变换,试着对变换和投影进行变换,但都不起作用

我希望球保持在如下所示的当前位置


是要旋转圆柱体上的单个顶点,还是要围绕当前网格局部原点以外的轴点旋转圆柱体?在任何一种情况下,你能提供一些你期望的和现在发生的事情的屏幕截图吗?我正在旋转一个圆柱体,但我希望在旋转后一个点(位置)位于圆柱体上之前的位置。旋转圆柱体上的一个顶点。抱歉,还不清楚。一张图表或屏幕截图会有所帮助。希望这张图片能帮助你,圆柱体上的z必须指向相机,不要离开,在我应用俯仰的图片中,圆柱体也可以滚动和偏航。但当我尝试使用相同的转换时,问题出在了错误的地方