Класс QGraphicsRotation
Класс QGraphicsRotation предоставляет преобразование поворота вокруг заданной оси. Подробнее...
| Заголовок: | #include <QGraphicsRotation> |
| qmake: | QT += widgets |
| С момента: | Qt 4.6 |
| Наследуется от: | QGraphicsTransform |
Этот класс был представлен в Qt 4.6.
Свойства
Открытые функции
| 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 свойству axis или передав член if Qt::Axis в удобную функцию setAxis. По умолчанию ось — (0, 0, 1), т. е. вращение вокруг оси Z.
Свойство angle, которое предоставляется QGraphicsRotation, теперь описывает количество градусов поворота вокруг этой оси.
QGraphicsRotation предоставляет определённые параметры для управления тем, как должно выполняться вращение.
Исходная точка — точка, вокруг которой вращается элемент (т. е., она остаётся неподвижной относительно родителя, пока остальная часть элемента вращается). По умолчанию исходная точка — QPointF(0, 0).
Свойство angle определяет количество градусов поворота элемента по часовой стрелке вокруг исходной точки. Это значение также может быть отрицательным, что указывает на вращение против часовой стрелки. В целях анимации может быть полезно предоставить углы вращения, превышающие (-360, 360) градусов, например, для анимации вращения элемента несколько раз.
Примечание: конечное вращение — это совместное действие вращения в 3D-пространстве, за которым следует проекция обратно в 2D. Если несколько вращений выполняются последовательно, они не будут работать так, как ожидается, если только все они не были вокруг оси 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)
Конструирует новый QGraphicsRotation с указанным parent.
void QGraphicsRotation::angleChanged()
Этот сигнал генерируется всякий раз, когда угол меняется.
Примечание: Сигнал уведомления для свойства angle.
См. также QGraphicsRotation::angle.
void QGraphicsRotation::axisChanged()
Этот сигнал генерируется всякий раз, когда меняется ось объекта.
Примечание: Сигнал уведомления для свойства axis.
См. также QGraphicsRotation::axis.
void QGraphicsRotation::originChanged()
Этот сигнал генерируется всякий раз, когда меняется исходная точка.
Примечание: Сигнал уведомления для свойства origin.
См. также QGraphicsRotation::origin.
QGraphicsRotation::~QGraphicsRotation()
Уничтожает вращение графики.
void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const
Переопределяет: QGraphicsTransform::applyTo(QMatrix4x4 *matrix) const.
void QGraphicsRotation::setAxis(Qt::Axis axis)
Функция-обёртка для установки оси на axis.
Примечание: поворот по оси Qt::YAxis для QTransform инвертирован по отношению к правильному математическому повороту в 3D пространстве. Класс QGraphicsRotation реализует корректный математический поворот. Следующие два фрагмента кода выполнят одинаковое преобразование:
QTransform t; t.rotate(45, Qt::YAxis); QGraphicsRotation r; r.setAxis(Qt::YAxis); r.setAngle(-45);
Примечание: Функция-сеттер для свойства axis.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qgraphicsrotation.html