Класс QGraphicsRotation
Класс QGraphicsRotation предоставляет вращательное преобразование вокруг заданной оси. Подробнее...
| Заголовок: | #include <QGraphicsRotation> |
| qmake: | QT += widgets |
| С момента: | Qt 4.6 |
| Наследует: | QGraphicsTransform |
Этот класс был представлен в Qt 4.6.
Свойства
Открытые функции
| QGraphicsRotation(QObject *parent = nullptr) | |
| virtual | ~QGraphicsRotation() |
| qreal | угол() const |
| QVector3D | ось() const |
| QVector3D | начало() const |
| void | установитьУгол(qreal) |
| void | установитьОсь(const QVector3D &axis) |
| void | установитьОсь(Qt::Axis axis) |
| void | установитьНачало(const QVector3D &point) |
Переопределённые открытые функции
| virtual void | применитьК(QMatrix4x4 *matrix) const override |
Сигналы
| void | уголИзменён() |
| void | осьИзменён() |
| void | началоИзменён() |
Подробное описание
Вы можете задать нужную ось, присвоив QVector3D свойству axis или передав член if Qt::Axis в удобную функцию setAxis. По умолчанию ось равна (0, 0, 1), т.е. вращение вокруг оси Z.
Свойство угол, которое предоставляется QGraphicsRotation, теперь описывает количество градусов, на которое нужно повернуть вокруг этой оси.
QGraphicsRotation предоставляет определённые параметры для управления тем, как должно применяться вращение.
Начало — это точка, вокруг которой вращается элемент (т. е. она остаётся фиксированной относительно родителя, когда остальная часть элемента вращается). По умолчанию начало — QPointF(0, 0).
Свойство угол определяет количество градусов вращения элемента по часовой стрелке вокруг начала. Это значение также может быть отрицательным, указывая на вращение против часовой стрелки. Для целей анимации может быть полезно указать углы вращения, превышающие (-360, 360) градусов, например, для анимации многократного вращения элемента.
Примечание: конечное вращение является комбинированным эффектом вращения в 3D пространстве, за которым следует проекция обратно в 2D. Если несколько вращений выполняются последовательно, они не будут вести себя так, как ожидается, если только все они не были вокруг оси Z.
См. также QGraphicsTransform, QGraphicsItem::setRotation() и QTransform::rotate().
Документация по свойствам
угол : qreal
Это свойство содержит угол для вращения по часовой стрелке в градусах.
Угол может быть любым вещественным числом; значение по умолчанию равно 0,0. Значение 180 повернёт на 180 градусов по часовой стрелке. Если вы предоставите отрицательное число, элемент будет повернут против часовой стрелки. Обычно угол вращения будет в диапазоне (-360, 360), но вы также можете предоставить числа за пределами этого диапазона (например, угол 370 градусов даёт тот же результат, что и 10 градусов). Установка угла в NaN приводит к отсутствию вращения.
Функции доступа:
| qreal | угол() const |
| void | установитьУгол(qreal) |
Сигнал уведомления:
| void | уголИзменён() |
См. также начало.
ось : QVector3D
Это свойство содержит ось вращения, заданную вектором в 3D пространстве.
Это может быть любая ось в 3D пространстве. По умолчанию ось равна (0, 0, 1), что совпадает с осью Z. Если вы укажете другую ось, QGraphicsRotation обеспечит преобразование, которое вращает вокруг этой оси. Например, если вы хотите повернуть элемент вокруг своей оси X, вы можете передать (1, 0, 0) в качестве оси.
Функции доступа:
| QVector3D | ось() const |
| void | установитьОсь(const QVector3D &axis) |
| void | установитьОсь(Qt::Axis axis) |
Сигнал уведомления:
| void | осьИзменён() |
См. также QTransform и QGraphicsRotation::угол.
начало : QVector3D
Это свойство содержит начало вращения в 3D пространстве.
Все вращения будут выполняться относительно этой точки (т. е. эта точка будет оставаться неподвижной относительно родителя, когда элемент поворачивается).
Функции доступа:
| QVector3D | начало() const |
| void | установитьНачало(const QVector3D &point) |
Сигнал уведомления:
| void | началоИзменён() |
См. также угол.
Документация по функциям-членам
QGraphicsRotation::QGraphicsRotation(QObject *parent = nullptr)
Создаёт новый QGraphicsRotation с заданным parent.
void QGraphicsRotation::уголИзменён()
Этот сигнал излучается всякий раз, когда угол изменяется.
Примечание: Сигнал уведомления для свойства угол.
См. также QGraphicsRotation::угол.
void QGraphicsRotation::осьИзменён()
Этот сигнал излучается всякий раз, когда ось объекта изменяется.
Примечание: Сигнал уведомления для свойства ось.
См. также QGraphicsRotation::ось.
void QGraphicsRotation::началоИзменён()
Этот сигнал излучается всякий раз, когда изменяется начало.
Примечание: Сигнал уведомления для свойства начало.
См. также QGraphicsRotation::начало.
QGraphicsRotation::~QGraphicsRotation()
Удаляет вращение графики.
void QGraphicsRotation::применитьК(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.14/qgraphicsrotation.html