Rotation3D在QML场景中无法正常工作

时间:2015-03-15 15:52:29

标签: 3d rotation qml axis scene

我正在尝试围绕3个不同的轴在QML中旋转复杂的3D对象。为了便于理解,这里有一个简化的代码,您可以使用滑块旋转三维不同的旋转角度。第一个滑块围绕x轴旋转立方体,围绕y轴旋转第二个滑块,围绕z轴旋转第三个滑块。

import QtQuick 2.2
import Qt3D 2.0
import Qt3D.Shapes 2.0
import QtQuick.Controls 1.0

Viewport {
    width: 500
    height: 500
    light: Light {
        ambientColor: "white"
        position: Qt.vector3d(5, 1, 10)
    }
    Cube {
        transform {
            Rotation3D {
                id: rotX
                axis: Qt.vector3d(1, 0, 0)
            }

            Rotation3D {
                id: rotY
                axis: Qt.vector3d(0, 1, 0)
            }
            Rotation3D {
                id: rotZ
                axis: Qt.vector3d(0, 0, 1)
            }
        }
    }

    Slider {
        id: sliderHorizontal1
        x: 37
        y: 21
        maximumValue: 360
        onValueChanged: rotX.angle = value
    }

    Slider {
        id: sliderHorizontal2
        x: 37
        y: 62
        maximumValue: 360
        onValueChanged: rotY.angle = value
    }

    Slider {
        id: sliderHorizontal3
        x: 37
        y: 104
        maximumValue: 360
        onValueChanged: rotZ.angle = value
    }
}

然而,当您尝试使用qmlscene中的立方体时,有时会围绕其身体固定轴旋转,有时围绕固定轴在空间中旋转(例如,z旋转永远不会围绕身体固定轴)。 我想围绕其身体固定轴旋转立方体 。我怎么能做到这一点?

0 个答案:

没有答案