我正在尝试围绕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旋转永远不会围绕身体固定轴)。 我想围绕其身体固定轴旋转立方体 。我怎么能做到这一点?