节点 QML 类型
3D 场景中存在的对象的基本组件。 更多...
导入声明 | import QtQuick3D |
继承自 | |
由以下类型继承 | 15 个类型Affector3D, AxisHelper, Camera, Joint, Light, Loader3D, LodManager, LookAtNode, Model, ParticleEmitter3D, ParticleSystem3D, ReflectionProbe, Repeater3D, RuntimeLoader, 以及 Skeleton |
属性
- eulerRotation : vector3d
- forward : vector3d
- opacity : real
- pivot : vector3d
- position : vector3d
- right : vector3d
- rotation : quaternion
- scale : vector3d
- scenePosition : vector3d
- sceneRotation : quaternion
- sceneScale : vector3d
- sceneTransform : matrix4x4
- staticFlags : int
- up : vector3d
- visible : bool
- x : real
- y : real
- z : real
方法
- vector3d mapDirectionFromNode(QtQuick3D::Node node, vector3d localDirection)
- vector3d mapDirectionFromScene(vector3d sceneDirection)
- vector3d mapDirectionToNode(QtQuick3D::Node node, vector3d localDirection)
- vector3d mapDirectionToScene(vector3d localDirection)
- vector3d mapPositionFromNode(QtQuick3D::Node node, vector3d localPosition)
- vector3d mapPositionFromScene(vector3d scenePosition)
- vector3d mapPositionToNode(QtQuick3D::Node node, vector3d localPosition)
- vector3d mapPositionToScene(vector3d localPosition)
- rotate(real degrees, vector3d axis, enumeration space)
详细说明
Node类作为其他空间类型(如Model、Camera、Light)的基类。这些对象表示存在于3D场景中的实体,因为它们在3D世界中具有位置和其他属性。除根节点外,所有Node类型的转换都是相对于其父节点进行的,即在局部坐标系中。Node类型在Qt Quick 3D场景中的作用类似于Qt Quick场景中的Item。
除了从Node派生出的类型,还可以将其他类型作为子类放入Node中。这包括QObject实例,其中Node仅作为QObject父类,以及Qt Quick项目。
将其他对象分组或细分,例如将节点作为一个整体进行动画,可以是一种方便的方法。此代码片段显示了如何使用Node来动画化相机
Node { PerspectiveCamera { position: Qt.vector3d(0, 0, -600) } SequentialAnimation on eulerRotation.y { loops: Animation.Infinite PropertyAnimation { duration: 5000 from: 0 to: 360 } } }
当在View3D之外创建场景时,也必须使用Node,例如为了在飞行中切换场景或在不同视图中显示相同场景。
Node { id: standAloneScene DirectionalLight {} Model { source: "#Sphere" materials: [ DefaultMaterial {} ] } PerspectiveCamera { z: 600 } } View3D { importScene: standAloneScene }
属性说明
eulerRotation : vector3d |
此属性包含x、y和z轴的旋转值。这些值存储为vector3d。旋转顺序假定为ZXY。
forward : vector3d |
此属性返回节点在场景空间中的前向方向归一化向量。
opacity : real |
此属性包含节点的局部不透明度值。由于节点不是必然可见的,这个值可能没有任何效果,但这个值将由节点所有子元素继承,这些子元素可能是可见的。
pivot : vector3d |
此属性包含x、y和z轴的支点值。这些值在将旋转应用到节点时用作支点。
right : vector3d |
此属性返回节点在场景空间中的右向方向归一化向量。
另请参阅 向前、向上 和 mapDirectionToScene。
rotation : 四元数 |
该属性包含节点的旋转值。这些值以四元数的形式存储。
scale : 三维向量 |
该属性包含 x、y 和 z 轴的缩放值。
scenePosition : 三维向量 |
该属性返回节点在场景空间中的位置。
注意:这有时也被称为全局位置。但在这里指“在 3D 世界中的全局”,而不是“相对于屏幕或桌面”的全局(这在其他 Qt API 中通常是这种解释)。
注意:位置将根据节点的方向报告。
另请参阅 mapPositionToScene。
sceneRotation : 四元数 |
该属性返回节点在场景空间中的旋转。
sceneScale : 三维向量 |
该属性返回节点在场景空间中的缩放。
sceneTransform : 4x4 矩阵 |
该属性返回该节点的全局变换矩阵。
注意:返回值将在右手坐标系中。
staticFlags : 整数 |
该属性定义用作评估节点渲染方式的静态标记。目前不执行任何操作,仅为未来实现预留。
up : 三维向量 |
该属性返回节点在场景空间中向上方向的归一化向量。
另请参阅 向前、向右 和 mapDirectionToScene。
visible : 布尔值 |
当此属性为 true 时,节点(及其子节点)可以是可见的。
方法文档
三维向量 mapDirectionFromNode(QtQuick3D::Node node, 三维向量 localDirection) |
将 localDirection 从 node 的局部空间转换为该节点的局部空间。返回值不受节点(继承的)缩放或位置的影响。
注意:返回值将具有与 localDirection 相同的长度(即未归一化)。
注意:如果 节点 为空,则 方向 将按其在场景空间中的坐标被解析。
另请参阅:mapDirectionToNode、mapDirectionFromScene、以及 mapDirectionToScene。
将 场景方向 从场景空间转换为本地空间。返回值不受节点(继承的)缩放或位置的影响。
注意:返回值将与 场景方向 具有相同的长度(即未归一化)。
另请参阅:mapDirectionToScene、mapDirectionToNode、以及 mapDirectionFromNode。
vector3d mapDirectionToNode(QtQuick3D::Node 节点, vector3d 本地方向) |
将 本地方向 从当前节点的本地空间转换为 节点 的本地空间。返回值不受节点(继承的)缩放或位置的影响。
注意:返回值将具有与 localDirection 相同的长度(即未归一化)。
注意:如果 节点 为空,则返回的方向将被转换为场景空间坐标。
另请参阅:mapDirectionFromNode、mapDirectionFromScene以及 mapDirectionToScene。
将 本地方向 从本地空间转换为场景空间。返回值不受节点(继承的)缩放或位置的影响。
注意:返回值将具有与 localDirection 相同的长度(即未归一化)。
另请参阅:mapDirectionFromScene、mapDirectionToNode以及 mapDirectionFromNode。
vector3d mapPositionFromNode(QtQuick3D::Node 节点, vector3d 本地位置) |
将 本地位置 从 节点 的本地空间转换到当前节点的本地空间。
注意:如果 节点 为空,则 本地位置 将按其在场景空间中的坐标被解析。
另请参阅:mapPositionToScene、mapPositionFromScene以及 mapPositionToNode。
将 场景位置 从场景空间转换为本地空间。
另请参阅:mapPositionToScene、mapPositionToNode以及 mapPositionFromNode。
vector3d mapPositionToNode(QtQuick3D::Node 节点, vector3d 本地位置) |
将 本地位置 从当前节点的本地空间转换到《i translate="no">节点 的本地空间。
注意:如果 节点 为空,则 本地位置 将被转换为场景空间坐标。
另请参阅:mapPositionToScene、mapPositionFromScene以及 mapPositionFromNode。
将局部空间中的 localPosition 转换为场景空间。
注意:“场景空间”有时也称为“全局空间”。但在这里指的是“3D世界的全局”,而不是“屏幕或桌面的全局”(通常在其他 Qt API 中的解释)。
另请参阅:mapPositionFromScene、mapPositionToNode 和 mapPositionFromNode。
rotate(real degrees, vector3d axis, enumeration space) |
绕给定 axis 以 degrees 旋转该节点。指定的旋转将被添加到节点的当前旋转。轴可以相对于不同的 space 指定。
常量 | 描述 |
---|---|
Node.LocalSpace | 轴相对于该节点的本地方向。 |
Node.ParentSpace | 轴相对于父节点的本地方向。 |
Node.SceneSpace | 轴相对于场景。 |
© 2024 The Qt Company Ltd. 本文档中包含的贡献属于其各自的所有者。本提供在此的文档根据自由软件基金会发布的 GNU 自由文档许可证第 1.3 版 的条款许可。Qt 及其各自标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。