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 に設定するための便利関数。

注意:QTransformQt::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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。