QGraphicsRotation 类

QGraphicsRotation 类提供在指定轴上的旋转变换。 更多...

头文件 #include <QGraphicsRotation>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承 QGraphicsTransform

属性

公共函数

QGraphicsRotation(QObject *parent = nullptr)
virtual~QGraphicsRotation()
qrealangle() const
QVector3Daxis() const
QVector3Dorigin() const
voidsetAngle(qreal)
voidsetAxis(const QVector3D &axis)
voidsetAxis(Qt::Axis axis)
voidsetOrigin(const QVector3D &point)

覆写公共函数

virtual voidapplyTo(QMatrix4x4 *matrix) const override

信号

详细描述

您可以通过将一个 QVector3D 分配给轴属性或通过传递一个成员到 Qt::AxissetAxis 便捷函数来指定所需的轴。默认轴是 (0, 0, 1),即绕 Z 轴旋转。

QGraphicsRotation 提供的角度属性现在描述了绕此轴旋转的度数。

QGraphicsRotation 提供一定的参数以帮助控制旋转的应 用。

原点是围绕旋转的项的点(即它在父项中保持相对于其他项旋转时的固定位置)。默认情况下,原点是 QPointF(0, 0)。

角度属性提供了绕原点顺时针旋转项的度数。该值也可以是负值,表示逆时针旋转。为动画目的,提供超过 (-360, 360) 度的旋转角度可能也很有用,例如,为了模拟一项旋转的次数。

注意:最终旋转是先在三维空间中旋转,然后投影回二维空间的综合效果。如果连续执行多个旋转,除非它们都是在Z轴周围进行的,否则它们的行为将不会像预期的那样。

另请参阅:QGraphicsTransformQGraphicsItem::setRotation(),和QTransform::rotate

属性文档

angle : qreal

该属性保存顺时针旋转的角度,单位为度。

角度可以是任何实数;默认值是0.0。180度的值将顺时针旋转180度。如果您提供负数,则项目将逆时针旋转。通常旋转角度会在(-360,360)范围内,但您也可以提供此范围之外的数字(例如,370度的角度产生与10度相同的结果)。将角度设置为NaN会导致不旋转。

访问函数

qrealangle() const
voidsetAngle(qreal)

通知器信号

voidangleChanged()

另请参阅:origin

axis : QVector3D

该属性保存一个旋转轴,通过3D空间中的向量指定。

这可以是3D空间中的任何轴。默认情况下,轴是(0,0,1),它与Z轴对齐。如果您提供另一个轴,QGraphicsRotation将提供围绕此轴的转换。例如,如果您想围绕X轴旋转一个项,可以将(1,0,0)作为轴传递。

访问函数

QVector3Daxis() const
voidsetAxis(const QVector3D &axis)
voidsetAxis(Qt::Axis axis)

通知器信号

voidaxisChanged()

另请参阅:QTransform以及QGraphicsRotation::angle

origin : QVector3D

该属性保存3D空间中旋转的原点。

所有旋转都将相对于此点进行(即当项目旋转时,此点相对于父类将保持固定)。

访问函数

QVector3Dorigin() const
voidsetOrigin(const QVector3D &point)

通知器信号

另请参阅: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 的通知信号。

另见:QGraphicsRotation::axis.

[信号] void QGraphicsRotation::originChanged()

每当原点发生变化时都会发出此信号。

注意:属性 origin 的通知信号。

另见:QGraphicsRotation::origin.

void QGraphicsRotation::setAxis(Qt::Axis axis)

将轴设置为 axis 的便利函数。

注意:对于 QTransformQt::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. 的注册商标。所有其他商标均为各自所有者的财产。