QGraphicsRotation 类
QGraphicsRotation 类提供在指定轴上的旋转变换。 更多...
头文件 | #include <QGraphicsRotation> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承 | QGraphicsTransform |
属性
公共函数
QGraphicsRotation(QObject *parent = nullptr) | |
virtual | ~QGraphicsRotation() |
qreal | angle() const |
QVector3D | axis() const |
QVector3D | origin() const |
void | setAngle(qreal) |
void | setAxis(const QVector3D &axis) |
void | setAxis(Qt::Axis axis) |
void | setOrigin(const QVector3D &point) |
覆写公共函数
virtual void | applyTo(QMatrix4x4 *matrix) const override |
信号
void | angleChanged() |
void | axisChanged() |
void | originChanged() |
详细描述
您可以通过将一个 QVector3D 分配给轴属性或通过传递一个成员到 Qt::Axis 的 setAxis 便捷函数来指定所需的轴。默认轴是 (0, 0, 1),即绕 Z 轴旋转。
QGraphicsRotation 提供的角度属性现在描述了绕此轴旋转的度数。
QGraphicsRotation 提供一定的参数以帮助控制旋转的应 用。
原点是围绕旋转的项的点(即它在父项中保持相对于其他项旋转时的固定位置)。默认情况下,原点是 QPointF(0, 0)。
角度属性提供了绕原点顺时针旋转项的度数。该值也可以是负值,表示逆时针旋转。为动画目的,提供超过 (-360, 360) 度的旋转角度可能也很有用,例如,为了模拟一项旋转的次数。
注意:最终旋转是先在三维空间中旋转,然后投影回二维空间的综合效果。如果连续执行多个旋转,除非它们都是在Z轴周围进行的,否则它们的行为将不会像预期的那样。
另请参阅:QGraphicsTransform,QGraphicsItem::setRotation(),和QTransform::rotate。
属性文档
angle : qreal
该属性保存顺时针旋转的角度,单位为度。
角度可以是任何实数;默认值是0.0。180度的值将顺时针旋转180度。如果您提供负数,则项目将逆时针旋转。通常旋转角度会在(-360,360)范围内,但您也可以提供此范围之外的数字(例如,370度的角度产生与10度相同的结果)。将角度设置为NaN会导致不旋转。
访问函数
qreal | angle() const |
void | setAngle(qreal) |
通知器信号
void | angleChanged() |
另请参阅:origin。
axis : QVector3D
该属性保存一个旋转轴,通过3D空间中的向量指定。
这可以是3D空间中的任何轴。默认情况下,轴是(0,0,1),它与Z轴对齐。如果您提供另一个轴,QGraphicsRotation将提供围绕此轴的转换。例如,如果您想围绕X轴旋转一个项,可以将(1,0,0)作为轴传递。
访问函数
QVector3D | axis() const |
void | setAxis(const QVector3D &axis) |
void | setAxis(Qt::Axis axis) |
通知器信号
void | axisChanged() |
另请参阅:QTransform以及QGraphicsRotation::angle。
origin : QVector3D
该属性保存3D空间中旋转的原点。
所有旋转都将相对于此点进行(即当项目旋转时,此点相对于父类将保持固定)。
访问函数
QVector3D | origin() const |
void | setOrigin(const QVector3D &point) |
通知器信号
void | originChanged() |
另请参阅:angle。
成员函数文档
QGraphicsRotation::QGraphicsRotation(QObject *parent = nullptr)
使用给定的parent构建一个新的QGraphicsRotation。
[虚拟 noexcept]
QGraphicsRotation::~QGraphicsRotation()
销毁图形旋转。
[信号]
void QGraphicsRotation::angleChanged()
每当角度更改时,都会发出此信号。
注意:属性angle的通知器信号。
另请参阅:QGraphicsRotation::angle。
[重写虚拟]
void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const
重实:QGraphicsTransform::applyTo(QMatrix4x4 *matrix) const。
[信号]
void QGraphicsRotation::axisChanged()
每当对象的变化轴更改时,都会发出此信号。
注意:属性 axis 的通知信号。
[信号]
void QGraphicsRotation::originChanged()
每当原点发生变化时都会发出此信号。
注意:属性 origin 的通知信号。
void QGraphicsRotation::setAxis(Qt::Axis axis)
将轴设置为 axis 的便利函数。
注意:对于 QTransform,Qt::YAxis 旋转与 3D 空间中正确的数学旋转相反。 QGraphicsRotation 类实现了一个正确的数学旋转。以下两个代码序列将执行相同的变换
QTransform t; t.rotate(45, Qt::YAxis); QGraphicsRotation r; r.setAxis(Qt::YAxis); r.setAngle(-45);
注意:属性 axis 的设置函数。
© 2024 The Qt Company Ltd. 本文档中的文档贡献属于各自的拥有者。本文档是根据由自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款颁发的。Qt 及各自的品牌是芬兰以及/或全球其他国家的 The Qt Company Ltd. 的注册商标。所有其他商标均为各自所有者的财产。