Класс 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
- 31 открытые функции унаследованы от 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) градусов, например, для анимации многократного вращения элемента.
Примечание. Конечное вращение является комбинированным результатом вращения в трёхмерном пространстве, за которым следует проекция обратно в 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/archives/qt-5.6/qgraphicsrotation.html