QQuick3D-Node的介绍
Node的概述
- Node类是3D场景中的基类,用于表示存在于3D场景中实体(模型、摄像机、灯光)等。场景中除了根节点,所有其它节点都是相对于父节点的转换,即在局部坐标系中。
- 如果需要将一个场景用于多个View3D显示,必须使用Node节点。
- 旋转轴指的是物体旋转时围绕的轴线。在3D空间中,常见的旋转轴是X轴、Y轴和Z轴,分别代表水平、垂直和深度方向的轴。旋转轴定义了物体在空间中旋转的方向;绕X轴旋转和俯仰角(Pitch)相关;绕Y轴旋转和偏航角(Yaw)相关,绕Z轴旋转和翻滚角(Roll)相关
- 属性eulerRotation : vector3d:设置x,y,z轴的旋转值,旋转顺序 z,x,y
- 属性forward : vector3d:只读,返回节点在场景中正向的归一化坐标
- 属性opacity : real:节点的不透明度,会继承给此节点的子节点
- 属性pivot : vector3d:节点的旋转,缩放或变形的参考点,通常为几何中心,也可以移到其它位置
- 属性position : vector3d:在局部空间中坐标的位置平移。
- 属性right : vector3d:只读,返回节点在场景中右方向的归一化坐标
- 属性rotation : quaternion:节点的旋转值,使用四元数
- 属性scale : vector3d:x,y,z轴上的缩放量
- 属性scenePosition : vector3d:只读,节点在场景中位置
- 属性sceneRotation : quaternion:只读,节点在场景中旋转值
- 属性sceneScale : vector3d:只读,节点在场景中缩放值
- 属性sceneTransform : matrix4x4:只读,节点的全局变换矩阵
- 属性staticFlags : int
- 属性up : vector3d:只读,返回节点在场景中向上的归一化坐标
- 属性visible : bool:控制节点(以及子节点)是否可见
- 属性x : real:局部坐标系中,x轴的值
- 属性y : real:局部坐标系中,y轴的值
- 属性z : real:局部坐标系中,z轴的值
Node的实例代码
import QtQuick
import QtQuick3D
import QtQuick.Controls
Window{id: windowwidth: 1280height: 720visible: truetitle: "View3Ds with Different Cameras"color: "#848895"Node{id:idRootNode DirectionalLight {ambientColor: Qt.rgba(0.5, 0.5, 0.5, 1.0)brightness: 1.0eulerRotation.x: -25}Model {id: idModelsource: "#Cube" x:50y:50scale: Qt.vector3d(3, 3, 0.5) eulerRotation.x: -45eulerRotation.z:45materials: [ DefaultMaterial {diffuseColor: Qt.rgba(0.8, 0.8, 0.8, 1.0)}]}OrthographicCamera {id: cameraOrthographicFrontz: 600}}Rectangle {id: topLeftanchors.top: parent.topanchors.left: parent.leftwidth: parent.width * 0.5height: parent.height * 0.5color: "#848895"border.color: "black"View3D {id: topLeftViewanchors.fill: parentimportScene: idRootNodecamera: cameraOrthographicFront}Button{id:idButanchors.top: parent.topanchors.margins: 10text:"click"onClicked: {console.log("x = ",idModel.x," y = ",idModel.y, " z = ",idModel.z);console.log("matrix = ",idModel.sceneTransform);console.log("scenePosition = ",idModel.scenePosition);console.log("sceneRotation = ",idModel.sceneRotation);console.log("sceneScale = ",idModel.sceneScale);console.log("position = ",idModel.position);console.log("rotation = ",idModel.rotation);console.log("scale = ",idModel.scale);console.log("pivot = ",idModel.pivot);}}}
}