QGraphicsRotation Class
QGraphicsRotationクラスは、与えられた軸を中心とした回転変換を提供します。詳細...
ヘッダー | #include <QGraphicsRotation> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) 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(Qt::Axis axis) |
void | setAxis(const QVector3D &axis) |
void | setOrigin(const QVector3D &point) |
再実装パブリック関数
virtual void | applyTo(QMatrix4x4 *matrix) const override |
シグナル
void | angleChanged() |
void | axisChanged() |
void | originChanged() |
詳細説明
axisプロパティにQVector3D を代入するか、setAxis コンビニエンス関数にQt::Axis のメンバを渡すことで、必要な軸を指定できる。デフォルトでは、軸は(0, 0, 1)、すなわちZ軸周りの回転である。
QGraphicsRotationが提供するangleプロパティは、この軸を中心に回転する度数を記述します。
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() |
原点も参照のこと 。
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)
与えられたparent で新しい QGraphicsRotation を構築する。
[virtual noexcept]
QGraphicsRotation::~QGraphicsRotation()
グラフィックの回転を破壊する。
[signal]
void QGraphicsRotation::angleChanged()
このシグナルは、角度が変化するたびに発せられる。
注: angle プロパティのノーティファイアシグナル。
[override virtual]
void QGraphicsRotation::applyTo(QMatrix4x4 *matrix) const
再実装.QGraphicsTransform::applyTo(QMatrix4x4 *matrix) const.
[signal]
void QGraphicsRotation::axisChanged()
このシグナルは、オブジェクトの軸が変化するたびに発せられる。
注: プロパティaxis のノーティファイアシグナル。
QGraphicsRotation::axisも参照してください 。
[signal]
void QGraphicsRotation::originChanged()
このシグナルは原点が変更されるたびに発行されます。
Note: プロパティorigin の通知シグナル。
QGraphicsRotation::originも参照してください 。
void QGraphicsRotation::setAxis(Qt::Axis axis)
軸をaxis に設定するための便利な関数。
注意:QTransform のQt::YAxis 回転は、3D 空間における正しい数学的回転とは逆になっています。QGraphicsRotation クラスは正しい数学的回転を実装しています。次の2つの一連のコードは、同じ変換を行います:
QTransform t; t.rotate(45, Qt::YAxis); QGraphicsRotation r; r.setAxis(Qt::YAxis); r.setAngle(-45);
注: axis プロパティのセッター関数。
axis()も参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.