如何在3D中围绕相同的枢轴/点旋转多个对象
How to rotate muliple objects around the same pivot/point in 3D?
以下是初始化模型矩阵时的旋转代码:
_model = translate(_position) *
( rotate(_rotation.data[0], 1.0f, 0.0f, 0.0f) *
rotate(_rotation.data[1], 0.0f, 1.0f, 0.0f) *
rotate(_rotation.data[2], 0.0f, 0.0f, 1.0f)) *
scale(_scale);
基本上,我有一个3D关卡,我想围绕同一个枢轴点旋转关卡和其中的所有对象。
我怎么能这么做?
这通常通过三个矩阵的连接(即乘法)来完成:
-
T
:将所需枢轴平移到原点(0,0,0)。 -
R
:应用旋转 -
Tinv
:翻译回来
由于OpenGL矩阵的结构方式,正确的顺序是Tinv * R * T
。
相关文章:
- 形状对象的旋转和缩放不正确C++
- 鼠标单击 OpenGL 时无法围绕其自己的中心旋转对象
- 无法在D2D1中旋转对象
- 如何使用OpenCV从图像中检测旋转对象
- 无法从非原点的其他位置旋转对象
- 使用键旋转对象
- OpenGL C++围绕场景中心旋转对象
- 围绕另一个对象旋转对象
- 旋转对象及其'children'
- OpenGL 在屏幕上渲染之前旋转对象以设置其正确的表面
- OpenGL 平移和旋转对象
- OpenGL,如何相互独立地旋转对象
- 旋转对象时缺少像素
- 如何在opengl中旋转对象
- 在OpenGL中,在对象自己的轴上旋转对象
- 旋转对象,但保持照明固定DirectX
- 在OpenGL中围绕特定点旋转对象
- Opencv动画使用旋转矩阵旋转对象
- 如何在opengl中使用矩阵移动和旋转对象
- 围绕中心点旋转对象的函数