QGraphicsRotation Class
QGraphicsRotationクラスは、与えられた軸を中心とした回転変換を提供します。詳細...
Header: | #include <QGraphicsRotation> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
Inherits: | 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空間のベクトルで指定された回転軸を保持する。
これは3次元空間の任意の軸を指定することができる。デフォルトでは軸は(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 プロパティの通知シグナルです。
QGraphicsRotation::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()
このシグナルは、原点が変更されるたびに発行されます。
注 : プロパティ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()も参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。