Класс QGraphicsRotation
Класс QGraphicsRotation предоставляет трансформацию поворота вокруг заданной оси. Подробнее...
| Заголовок: | #include <QGraphicsRotation> |
| qmake: | QT += widgets |
| С момента: | Qt 4.6 |
| Наследуется от: | QGraphicsTransform |
Свойства
- 1 свойство унаследовано от QObject
Открытые функции
| 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 |
- 1 открытая функция унаследована от QGraphicsTransform
- 31 открытых функции унаследованы от QObject
Сигналы
| void | angleChanged() |
| void | axisChanged() |
| void | originChanged() |
- 2 сигнала унаследованы от QObject
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов унаследованы от QObject
Дополнительные унаследованные члены
- 1 открытый слот унаследован от QObject
- 9 защищенные функции унаследованы от QObject
- 1 защищенный слот унаследован от QGraphicsTransform
Подробное описание
Класс QGraphicsRotation предоставляет трансформацию поворота вокруг заданной оси.
Вы можете задать желаемую ось, присвоив значение типа QVector3D свойству axis или передав значение перечисления Qt::Axis в удобную функцию setAxis. По умолчанию ось равна (0, 0, 1), т.е. поворот вокруг оси Z.
Свойство angle, предоставляемое классом QGraphicsRotation, теперь описывает количество градусов поворота вокруг этой оси.
Класс QGraphicsRotation предоставляет определенные параметры для управления тем, как будет применяться поворот.
Точка origin — это точка, вокруг которой вращается элемент (т.е. она остается неподвижной относительно родителя, а остальная часть элемента поворачивается). По умолчанию origin имеет значение QPointF(0, 0).
Свойство angle задаёт количество градусов поворота элемента по часовой стрелке вокруг точки origin. Это значение может быть отрицательным, что указывает на поворот против часовой стрелки. Для целей анимации может быть полезно задавать углы поворота, превышающие (-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.
[virtual] QGraphicsRotation::~QGraphicsRotation()
Удаляет объект поворота.
[signal] void QGraphicsRotation::angleChanged()
Этот сигнал генерируется всякий раз, когда угол изменяется.
Примечание: Сигнал уведомления для свойства angle.
См. также QGraphicsRotation::angle.
[override virtual] void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const
Переопределено из QGraphicsTransform::applyTo.
[signal] void QGraphicsRotation::axisChanged()
Этот сигнал испускается всякий раз, когда ось объекта изменяется.
Примечание: Сигнал уведомления для свойства axis.
См. также QGraphicsRotation::axis.
[signal] void QGraphicsRotation::originChanged()
Этот сигнал испускается всякий раз, когда изменилось начало отсчета.
Примечание: Сигнал уведомления для свойства origin.
См. также QGraphicsRotation::origin.
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.12/qgraphicsrotation.html