Класс QGraphicsRotation
Класс QGraphicsRotation предоставляет преобразование вращения вокруг заданной оси. Подробнее...
| Заголовок: | #include <QGraphicsRotation> |
| qmake: | QT += widgets |
| С момента: | Qt 4.6 |
| Наследует: | QGraphicsTransform |
Свойства
- 1 свойство унаследовано от QObject
Открытые функции
| QGraphicsRotation(QObject *parent = Q_NULLPTR) | |
| ~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 |
- 1 открытая функция унаследована от QGraphicsTransform
- 32 открытые функции унаследованы от QObject
Сигналы
| void | angleChanged() |
| void | axisChanged() |
| void | originChanged() |
- 2 сигнала унаследованы от QObject
Дополнительные унаследованные члены
- 1 открытый слот унаследован от QObject
- 11 статические открытые члены унаследованы от QObject
- 9 защищённые функции унаследованы от QObject
- 1 защищённый слот унаследован от QGraphicsTransform
Подробное описание
Класс QGraphicsRotation предоставляет преобразование вращения вокруг заданной оси.
Вы можете указать желаемую ось, присвоив 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 = Q_NULLPTR)
Создаёт новый объект QGraphicsRotation с заданным parent.
QGraphicsRotation::~QGraphicsRotation()
Уничтожает объект вращения графики.
void QGraphicsRotation::angleChanged()
Этот сигнал излучается всякий раз, когда угол изменяется.
Примечание: Сигнал уведомления для свойства angle.
См. также QGraphicsRotation::angle.
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.9/qgraphicsrotation.html