节点 QML 类型

3D 场景中存在的对象的基本组件。 更多...

导入声明import QtQuick3D
继承自

Object3D

由以下类型继承
15 个类型

Affector3D, AxisHelper, Camera, Joint, Light, Loader3D, LodManager, LookAtNode, Model, ParticleEmitter3D, ParticleSystem3D, ReflectionProbe, Repeater3D, RuntimeLoader, 以及 Skeleton

属性

方法

详细说明

Node类作为其他空间类型(如ModelCameraLight)的基类。这些对象表示存在于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。

另请参阅QQuaternion::fromEulerAngles


forward : vector3d [只读]

此属性返回节点在场景空间中的前向方向归一化向量。

另请参阅uprightmapDirectionToScene


opacity : real

此属性包含节点的局部不透明度值。由于节点不是必然可见的,这个值可能没有任何效果,但这个值将由节点所有子元素继承,这些子元素可能是可见的。


pivot : vector3d

此属性包含x、y和z轴的支点值。这些值在将旋转应用到节点时用作支点。


position : vector3d

此属性包含局部坐标系中的位置平移。

另请参阅xyz


right : vector3d [只读]

此属性返回节点在场景空间中的右向方向归一化向量。

另请参阅 向前向上mapDirectionToScene


rotation : 四元数

该属性包含节点的旋转值。这些值以四元数的形式存储。


scale : 三维向量

该属性包含 x、y 和 z 轴的缩放值。


scenePosition : 三维向量 [只读]

该属性返回节点在场景空间中的位置。

注意:这有时也被称为全局位置。但在这里指“在 3D 世界中的全局”,而不是“相对于屏幕或桌面”的全局(这在其他 Qt API 中通常是这种解释)。

注意:位置将根据节点的方向报告。

另请参阅 mapPositionToScene


sceneRotation : 四元数 [只读]

该属性返回节点在场景空间中的旋转。


sceneScale : 三维向量 [只读]

该属性返回节点在场景空间中的缩放。


sceneTransform : 4x4 矩阵 [只读]

该属性返回该节点的全局变换矩阵。

注意:返回值将在右手坐标系中。


staticFlags : 整数

该属性定义用作评估节点渲染方式的静态标记。目前不执行任何操作,仅为未来实现预留。


up : 三维向量 [只读]

该属性返回节点在场景空间中向上方向的归一化向量。

另请参阅 向前向右mapDirectionToScene


visible : 布尔值

当此属性为 true 时,节点(及其子节点)可以是可见的。


x : 实数

该属性包含在局部坐标系中的位置平移的 x 值。

另请参阅 位置


y : 实数

该属性包含在局部坐标系中的位置平移的 y 值。

另请参阅 位置


z : 实数

该属性包含在局部坐标系中的位置平移的 z 值。

另请参阅 位置


方法文档

三维向量 mapDirectionFromNode(QtQuick3D::Node node, 三维向量 localDirection)

localDirectionnode 的局部空间转换为该节点的局部空间。返回值不受节点(继承的)缩放或位置的影响。

注意:返回值将具有与 localDirection 相同的长度(即未归一化)。

注意:如果 节点 为空,则 方向 将按其在场景空间中的坐标被解析。

另请参阅:mapDirectionToNodemapDirectionFromScene、以及 mapDirectionToScene


vector3d mapDirectionFromScene(vector3d 场景方向)

场景方向 从场景空间转换为本地空间。返回值不受节点(继承的)缩放或位置的影响。

注意:返回值将与 场景方向 具有相同的长度(即未归一化)。

另请参阅:mapDirectionToScenemapDirectionToNode、以及 mapDirectionFromNode


vector3d mapDirectionToNode(QtQuick3D::Node 节点, vector3d 本地方向)

本地方向 从当前节点的本地空间转换为 节点 的本地空间。返回值不受节点(继承的)缩放或位置的影响。

注意:返回值将具有与 localDirection 相同的长度(即未归一化)。

注意:如果 节点 为空,则返回的方向将被转换为场景空间坐标。

另请参阅:mapDirectionFromNodemapDirectionFromScene以及 mapDirectionToScene


vector3d mapDirectionToScene(vector3d 本地方向)

本地方向 从本地空间转换为场景空间。返回值不受节点(继承的)缩放或位置的影响。

注意:返回值将具有与 localDirection 相同的长度(即未归一化)。

另请参阅:mapDirectionFromScenemapDirectionToNode以及 mapDirectionFromNode


vector3d mapPositionFromNode(QtQuick3D::Node 节点, vector3d 本地位置)

本地位置节点 的本地空间转换到当前节点的本地空间。

注意:如果 节点 为空,则 本地位置 将按其在场景空间中的坐标被解析。

另请参阅:mapPositionToScenemapPositionFromScene以及 mapPositionToNode


vector3d mapPositionFromScene(vector3d 场景位置)

场景位置 从场景空间转换为本地空间。

另请参阅:mapPositionToScenemapPositionToNode以及 mapPositionFromNode


vector3d mapPositionToNode(QtQuick3D::Node 节点, vector3d 本地位置)

本地位置 从当前节点的本地空间转换到《i translate="no">节点 的本地空间。

注意:如果 节点 为空,则 本地位置 将被转换为场景空间坐标。

另请参阅:mapPositionToScenemapPositionFromScene以及 mapPositionFromNode


vector3d mapPositionToScene(vector3d localPosition)

将局部空间中的 localPosition 转换为场景空间。

注意:“场景空间”有时也称为“全局空间”。但在这里指的是“3D世界的全局”,而不是“屏幕或桌面的全局”(通常在其他 Qt API 中的解释)。

另请参阅:mapPositionFromScenemapPositionToNodemapPositionFromNode


rotate(real degrees, vector3d axis, enumeration space)

绕给定 axisdegrees 旋转该节点。指定的旋转将被添加到节点的当前旋转。轴可以相对于不同的 space 指定。

常量描述
Node.LocalSpace轴相对于该节点的本地方向。
Node.ParentSpace轴相对于父节点的本地方向。
Node.SceneSpace轴相对于场景。

© 2024 The Qt Company Ltd. 本文档中包含的贡献属于其各自的所有者。本提供在此的文档根据自由软件基金会发布的 GNU 自由文档许可证第 1.3 版 的条款许可。Qt 及其各自标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。