【问题标题】:How to rotate muliple objects around the same pivot/point in 3D?如何在 3D 中围绕同一个枢轴/点旋转多个对象?
【发布时间】:2016-11-11 16:40:29
【问题描述】:

这是初始化模型矩阵时的旋转代码:

_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 关卡,我想围绕同一个轴心点旋转关卡和其中的所有对象。

我怎么能这样做?

【问题讨论】:

    标签: c++ opengl rotation


    【解决方案1】:

    这通常通过三个矩阵的连接(即乘法)来完成:

    1. T:将所需的枢轴平移到原点 (0, 0, 0)。
    2. R:应用旋转。
    3. Tinv:翻译回来。

    由于 OpenGL 矩阵的结构方式,正确的顺序是 Tinv * R * T。用它预乘你的视图矩阵。

    【讨论】:

    • 哦,好的,谢谢,所以我创建了三个矩阵并按照您刚刚指定的方式将它们组合在一起?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 2011-11-18
    相关资源
    最近更新 更多