Класс 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) градусов, например, чтобы анимировать, как элемент поворачивается несколько раз.
Примечание: конечный поворот — это комбинированный эффект поворота в 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-6.0/qgraphicsrotation.html