Класс QGraphicsRotation
Класс QGraphicsRotation предоставляет преобразование поворота вокруг заданной оси. Подробнее...
| Заголовок: | #include <QGraphicsRotation> |
| CMake: | find_package(Qt6 COMPONENTS Widgets REQUIRED) 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 свойству axis или передав значение типа Qt::Axis функции setAxis в качестве удобной функции. По умолчанию ось равна (0, 0, 1), т. е. поворот вокруг оси Z.
Свойство angle, которое предоставляет QGraphicsRotation, теперь описывает количество градусов поворота вокруг этой оси.
QGraphicsRotation предоставляет определённые параметры для управления способом применения поворота.
Исходная точка — это точка, вокруг которой вращается элемент (т. е. она остаётся неподвижной относительно родителя, в то время как остальная часть элемента вращается). По умолчанию исходная точка равна QPointF(0, 0).
Свойство angle предоставляет количество градусов поворота элемента по часовой стрелке вокруг исходной точки. Это значение также может быть отрицательным, указывая на поворот против часовой стрелки. Для целей анимации также может быть полезно предоставить углы поворота, превышающие (-360, 360) градусов, например, для анимации вращения элемента несколько раз.
Примечание: конечный поворот — это комбинированный эффект поворота в трёхмерном пространстве, за которым следует проекция обратно в 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
Это свойство содержит ось поворота, заданную вектором в трёхмерном пространстве.
Это может быть любая ось в трёхмерном пространстве. По умолчанию ось равна (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
Это свойство содержит начало поворота в трёхмерном пространстве.
Все повороты будут выполняться относительно этой точки (т. е. эта точка будет оставаться неподвижной относительно родителя, когда элемент поворачивается).
Функции доступа:
| 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-6.1/qgraphicsrotation.html