Qt3DCore::QTransform Class
class Qt3DCore::QTransform用于对网格执行变换。更多
头文件: | #include <QTransform> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3DCore) target_link_libraries(mytarget PRIVATE Qt6::3DCore) |
qmake: | QT += 3dcore |
在 QML 中: | Transform |
继承: | Qt3DCore::QComponent |
状态: | 已废弃 |
属性
|
公共功能
QTransform(Qt3DCore::QNode *parent = nullptr) | |
QMatrix4x4 | matrix() const |
QQuaternion | rotation() const |
float | rotationX() const |
float | rotationY() const |
float | rotationZ() const |
float | scale() const |
QVector3D | scale3D() const |
QVector3D | translation() const |
QMatrix4x4 | worldMatrix() const |
公共插槽
void | setMatrix(const QMatrix4x4 &matrix) |
void | setRotation(const QQuaternion &rotation) |
void | setRotationX(float rotationX) |
void | setRotationY(float rotationY) |
void | setRotationZ(float rotationZ) |
void | setScale(float scale) |
void | setScale3D(const QVector3D &scale) |
void | setTranslation(const QVector3D &translation) |
信号
void | matrixChanged() |
void | rotationChanged(const QQuaternion &rotation) |
void | rotationXChanged(float rotationX) |
void | rotationYChanged(float rotationY) |
void | rotationZChanged(float rotationZ) |
void | scale3DChanged(const QVector3D &scale) |
void | scaleChanged(float scale) |
void | translationChanged(const QVector3D &translation) |
void | worldMatrixChanged(const QMatrix4x4 &worldMatrix) |
静态公共成员
QQuaternion | fromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis) |
QQuaternion | fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2) |
QQuaternion | fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2, const QVector3D &axis3, float angle3) |
QQuaternion | fromAxisAndAngle(const QVector3D &axis, float angle) |
QQuaternion | fromAxisAndAngle(float x, float y, float z, float angle) |
QQuaternion | fromEulerAngles(const QVector3D &eulerAngles) |
QQuaternion | fromEulerAngles(float pitch, float yaw, float roll) |
QMatrix4x4 | rotateAround(const QVector3D &point, float angle, const QVector3D &axis) |
QMatrix4x4 | rotateFromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis) |
详细说明
QTransform 组件不可在多个QEntity's 之间共享。变换被保存为QVector3D 缩放、QQuaternion 旋转和QVector3D 平移组件。这些变换会按顺序应用到网格上。当QTransform::matrix 属性被设置时,它将被分解为这些变换组件,并发出相应的信号。
我们提供了多个辅助函数来设置 QTransform:fromAxisAndAngle 和fromAxesAndAngles 可用于设置绕特定轴的旋转,fromEulerAngles 可用于设置基于欧拉角的旋转,rotateAround 可用于设置对象绕相对于本地原点的特定点的旋转。
属性文档
matrix : QMatrix4x4
保存变换的QMatrix4x4 。
注: 设置矩阵属性后,它将分解为平移、旋转和缩放分量。
访问功能:
QMatrix4x4 | matrix() const |
void | setMatrix(const QMatrix4x4 &matrix) |
通知信号:
void | matrixChanged() |
rotation : QQuaternion
将变换的旋转值保存为QQuaternion 。
访问功能:
QQuaternion | rotation() const |
void | setRotation(const QQuaternion &rotation) |
通知信号:
void | rotationChanged(const QQuaternion &rotation) |
rotationX : float
以欧拉角形式保存变换的 x 旋转角度。
访问功能
float | rotationX() const |
void | setRotationX(float rotationX) |
通知信号
void | rotationXChanged(float rotationX) |
rotationY : float
以欧拉角形式保存变换的 y 旋转角度。
访问功能:
float | rotationY() const |
void | setRotationY(float rotationY) |
通知信号
void | rotationYChanged(float rotationY) |
rotationZ : float
以欧拉角形式保存变换的 Z 旋转角度。
访问功能
float | rotationZ() const |
void | setRotationZ(float rotationZ) |
通知信号
void | rotationZChanged(float rotationZ) |
scale : float
保持变换的统一比例。如果使用setScale3D 设置了缩放比例,则只保留 x 值。
访问功能:
float | scale() const |
void | setScale(float scale) |
通知信号:
void | scaleChanged(float scale) |
scale3D : QVector3D
将变换的比例保持为QVector3D 。
访问功能:
QVector3D | scale3D() const |
void | setScale3D(const QVector3D &scale) |
通知信号:
void | scale3DChanged(const QVector3D &scale) |
translation : QVector3D
将变换的平移值保存为QVector3D 。
访问功能:
QVector3D | translation() const |
void | setTranslation(const QVector3D &translation) |
通知信号:
void | translationChanged(const QVector3D &translation) |
[read-only]
worldMatrix : const QMatrix4x4
保存变换的世界变换矩阵。假定QTransform 组件被QEntity 引用。这样就能更方便地识别子树的QEntity 部分何时在世界范围内进行了变换,即使其本地变换可能没有改变。
访问功能:
QMatrix4x4 | worldMatrix() const |
Notifier 信号:
void | worldMatrixChanged(const QMatrix4x4 &worldMatrix) |
成员函数 文档
[explicit]
QTransform::QTransform(Qt3DCore::QNode *parent = nullptr)
构建一个新的 QTransform,parent 。
[static invokable]
QQuaternion QTransform::fromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)
从轴xAxis 、yAxis 和zAxis 创建一个定义旋转的 QQuaterniom。
注: 可通过元对象系统和 QML 调用该函数。请参见Q_INVOKABLE 。
[static invokable]
QQuaternion QTransform::fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2)
从axis1,angle1,axis2 和angle2 创建QQuaternion 。返回生成的QQuaternion 。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[static invokable]
QQuaternion QTransform::fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2, const QVector3D &axis3, float angle3)
从axis1,angle1,axis2,angle2,axis3 和angle3 创建QQuaternion 。返回生成的QQuaternion 。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[static invokable]
QQuaternion QTransform::fromAxisAndAngle(const QVector3D &axis, float angle)
从axis 和angle 创建QQuaternion 。返回生成的QQuaternion 。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[static invokable]
QQuaternion QTransform::fromAxisAndAngle(float x, float y, float z, float angle)
从x,y,z 和angle 创建QQuaternion 。返回生成的QQuaternion 。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[static invokable]
QQuaternion QTransform::fromEulerAngles(const QVector3D &eulerAngles)
从eulerAngles 创建QQuaternion 。返回生成的QQuaternion 。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[static invokable]
QQuaternion QTransform::fromEulerAngles(float pitch, float yaw, float roll)
从pitch 、yaw 和roll 创建QQuaternion 。返回生成的QQuaternion 。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[static invokable]
QMatrix4x4 QTransform::rotateAround(const QVector3D &point, float angle, const QVector3D &axis)
根据axis 和angle 创建一个围绕point 的旋转矩阵。返回生成的QMatrix4x4 。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[static invokable]
QMatrix4x4 QTransform::rotateFromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)
返回由xAxis,yAxis,zAxis 轴定义的旋转矩阵。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
QMatrix4x4 QTransform::worldMatrix() const
当被QEntity 引用时,返回与QTransform 相关联的世界变换矩阵, 可能是QEntity 层次结构的一部分。
注: 属性 worldMatrix 的获取函数。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.