Класс 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.2/qgraphicsrotation.html