QTransform Class
QTransformクラスは座標系の2次元変換を指定する。詳細...
Header: | #include <QTransform> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
- 継承メンバを含む全メンバのリスト
- QTransform はPainting Classes の一部です。
パブリック型
enum | TransformationType { TxNone, TxTranslate, TxScale, TxRotate, TxShear, TxProject } |
パブリック関数
QTransform() | |
QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy) | |
QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33) | |
qreal | m11() const |
qreal | m12() const |
qreal | m13() const |
qreal | m21() const |
qreal | m22() const |
qreal | m23() const |
qreal | m31() const |
qreal | m32() const |
qreal | m33() const |
QTransform | adjoint() const |
qreal | determinant() const |
qreal | dx() const |
qreal | dy() const |
QTransform | inverted(bool *invertible = nullptr) const |
bool | isAffine() const |
bool | isIdentity() const |
bool | isInvertible() const |
bool | isRotating() const |
bool | isScaling() const |
bool | isTranslating() const |
void | map(qreal x, qreal y, qreal *tx, qreal *ty) const |
QLine | map(const QLine &l) const |
QLineF | map(const QLineF &line) const |
QPainterPath | map(const QPainterPath &path) const |
QPoint | map(const QPoint &point) const |
QPointF | map(const QPointF &p) const |
QPolygon | map(const QPolygon &polygon) const |
QPolygonF | map(const QPolygonF &polygon) const |
QRegion | map(const QRegion ®ion) const |
void | map(int x, int y, int *tx, int *ty) const |
QRectF | mapRect(const QRectF &rectangle) const |
QRect | mapRect(const QRect &rectangle) const |
QPolygon | mapToPolygon(const QRect &rectangle) const |
void | reset() |
(since 6.5) QTransform & | rotate(qreal a, Qt::Axis axis, qreal distanceToPlane) |
QTransform & | rotate(qreal a, Qt::Axis axis = Qt::ZAxis) |
(since 6.5) QTransform & | rotateRadians(qreal a, Qt::Axis axis, qreal distanceToPlane) |
QTransform & | rotateRadians(qreal a, Qt::Axis axis = Qt::ZAxis) |
QTransform & | scale(qreal sx, qreal sy) |
void | setMatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33) |
QTransform & | shear(qreal sh, qreal sv) |
QTransform & | translate(qreal dx, qreal dy) |
QTransform | transposed() const |
QTransform::TransformationType | type() const |
QVariant | operator QVariant() const |
bool | operator!=(const QTransform &matrix) const |
QTransform | operator*(const QTransform &matrix) const |
QTransform & | operator*=(const QTransform &matrix) |
QTransform & | operator*=(qreal scalar) |
QTransform & | operator+=(qreal scalar) |
QTransform & | operator-=(qreal scalar) |
QTransform & | operator/=(qreal scalar) |
QTransform & | operator=(const QTransform &matrix) |
bool | operator==(const QTransform &matrix) const |
静的パブリックメンバ
QTransform | fromScale(qreal sx, qreal sy) |
QTransform | fromTranslate(qreal dx, qreal dy) |
bool | quadToQuad(const QPolygonF &one, const QPolygonF &two, QTransform &trans) |
bool | quadToSquare(const QPolygonF &quad, QTransform &trans) |
bool | squareToQuad(const QPolygonF &quad, QTransform &trans) |
関連する非メンバー
bool | qFuzzyCompare(const QTransform &t1, const QTransform &t2) |
size_t | qHash(const QTransform &key, size_t seed = 0) |
QLine | operator*(const QLine &line, const QTransform &matrix) |
QLineF | operator*(const QLineF &line, const QTransform &matrix) |
QPainterPath | operator*(const QPainterPath &path, const QTransform &matrix) |
QPoint | operator*(const QPoint &point, const QTransform &matrix) |
QPointF | operator*(const QPointF &point, const QTransform &matrix) |
QPolygon | operator*(const QPolygon &polygon, const QTransform &matrix) |
QPolygonF | operator*(const QPolygonF &polygon, const QTransform &matrix) |
QRegion | operator*(const QRegion ®ion, const QTransform &matrix) |
QDataStream & | operator<<(QDataStream &stream, const QTransform &matrix) |
QDataStream & | operator>>(QDataStream &stream, QTransform &matrix) |
詳細な説明
変換は、座標系を平行移動、拡大縮小、せん断、回転、または投影する方法を指定します。
QTransform オブジェクトは、setMatrix(),scale(),rotate(),translate(),shear() 関数を使用して構築できます。また、basic matrix operations を適用して構築することもできます。行列は構築時に定義することもでき、reset() 関数を使用することで恒等行列(デフォルト)にリセットすることができます。
QTransform クラスは、グラフィック・プリミティブのマッピングをサポートしています:与えられた点、線、多角形、領域、または画家のパスは、map ()関数を使用して、この行列で定義された座標系にマッピングすることができます。矩形の場合は、mapRect ()関数を使用して座標を変換できます。矩形は、mapToPolygon ()関数を使用して、(この行列で定義された座標系にマップされた)多角形に変換することもできます。
QTransform には、行列が恒等行列である場合にtrue
を返すisIdentity() 関数と、行列が非恒等行列(つまり AB = BA = I)である場合にtrue
を返すisInvertible() 関数が用意されています。inverted() 関数は,この行列が可逆行列であればその逆コピーを返し(そうでなければ恒等行列を返す),adjoint() は,この行列の古典的随伴行列を返す.さらに QTransform は,行列の行列式を返すdeterminant() 関数を提供します.
最後に、QTransformクラスは行列の乗算、加算、減算をサポートしており、このクラスのオブジェクトは比較だけでなくストリーミングも可能です。
グラフィックスのレンダリング
グラフィックを描画する場合、行列は変換を定義しますが、実際の変換はQPainter の描画ルーチンによって実行されます。
デフ ォル ト では、QPainter は、 関連す る デバ イ ス自身の座標系で動作 し ます。QPaintDevice の標準座標系は、 その原点が左上の位置にあ り ます。x値は右へ増加 し 、y値は下へ増加 し ます。詳 し く は座標系の解説を参照 し て く だ さ い。
QPainter は、 QTransform を用いずに座標系を平行移動 ・ 拡大縮小 ・ せん断 ・ 回転 さ せ る 関数を持っ てい ます。例えば
void SimpleTransformation::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); painter.rotate(45); painter.setFont(QFont("Helvetica", 24)); painter.setPen(QPen(Qt::black, 1)); painter.drawText(20, 10, "QTransform"); } |
これらの関数は非常に便利ですが、1 つ以上の変換操作を実行したい場合は、QTransform を作成してQPainter::setTransform() を呼び出す方が効率的な場合があります。例えば
void CombinedTransformation::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); QTransform transform; transform.translate(50, 50); transform.rotate(45); transform.scale(0.5, 1.0); painter.setTransform(transform); painter.setFont(QFont("Helvetica", 24)); painter.setPen(QPen(Qt::black, 1)); painter.drawText(20, 10, "QTransform"); } |
基本的な行列操作
QTransform オブジェクトには 3 x 3 の行列が含まれています。m31
(dx
) とm32
(dy
) 要素は、水平方向と垂直方向の平行移動を指定します。m11
とm22
要素は、水平方向と垂直方向のスケーリングを指定します。m21
とm12
要素は、水平方向と垂直方向のシアリングを指定します。そして最後に、m13
とm23
要素が水平と垂直の射影を指定し、m33
が追加の射影係数となります。
QTransformは、以下の式を用いて平面上の点を別の点に変換します:
x' = m11*x + m21*y + dx y' = m22*y + m12*x + dy if (!isAffine()) { w' = m13*x + m23*y + m33 x' /= w' y' /= w' }
点(x, y)は元の点であり、(x', y')は変換後の点である。(x',y')は、inverted()行列に対して同じ操作を行うことで、(x,y)に戻すことができる。
行列の各要素は、行列を作成するときに設定することも、後でsetMatrix() 関数を使用して設定することもできる。また、translate()、rotate()、scale()、shear() の各便宜関数を使用して操作することもできる。現在設定されている値は、m11(),m12(),m13(),m21(),m22(),m23(),m31(),m32(),m33(),dx(),dy() 関数を使用して取得することができる。
翻訳は最も単純な変換である。dx
とdy
を設定す る と 、 座標系が X 軸に沿っ てdx
単位、Y 軸に沿っ てdy
単位移動 し ます。拡大縮小は、m11
とm22
を設定す る こ と に よ っ て行 う こ と がで き ます。たとえば、m11
を 2 に設定し、m22
を 1.5 に設定すると、高さが 2 倍になり、幅が 50% 増えます。同一行列は、m11
、m22
、m33
を 1 に設定し(その他はすべて 0 に設定)、点をそれ自体にマッピングします。剪断はm12
とm21
によって制御されます。こ れ ら の要素を 0 以外の値に設定す る と 、 座標系が捻 ら れます。回転は、 せん断係数 と 拡縮係数の両方を設定す る こ と に よ っ て実現 さ れます。遠近変換は、投影係数とスケーリング係数の両方を設定することで実現されます。
変換の組み合わせ
基本的な行列演算を使った複合変換の例を示します:
void BasicOperations::paintEvent(QPaintEvent *) { const double a = qDegreesToRadians(45.0); double sina = sin(a); double cosa = cos(a); QTransform scale(0.5, 0, 0, 1.0, 0, 0); QTransform rotate(cosa, sina, -sina, cosa, 0, 0); QTransform translate(1, 0, 0, 1, 50.0, 50.0); QTransform transform = scale * rotate * translate; QPainter painter(this); painter.setPen(QPen(Qt::blue, 1, Qt::DashLine)); painter.drawRect(0, 0, 100, 100); painter.setTransform(transform); painter.setFont(QFont("Helvetica", 24)); painter.setPen(QPen(Qt::black, 1)); painter.drawText(20, 10, "QTransform"); } |
結合変換は、まず各オペランドを拡大縮小し、次に回転させ、最後に平行移動させます。つまり、変換が適用される点は、暗黙のうちに、左側の変換と右側の変換が掛け合わされる。
行列表記法との関係
QTransformの行列表記は、変換と点を行列とベクトルとして表現する、一般的に教えられている慣習の転置である。この表記法は,左側に行列を,右側に列ベクトルを掛け合わせる.言い換えれば、ある点にいくつかの変換が適用されたとき、一番右の行列がまずベクトルに直接作用する。次に左隣の行列が最初の演算の結果に作用する。その結果、Combining Transforms を見ればわかるように、QTransform の順序とは逆に、合成変換を構成する行列を乗算することになります。行列を転置し,それらを点を表す行ベクトルの右側に結合することで,変換の行列は,その積において,変換が点に適用されると考えられる順序で現れるようになります.
QPainter,座標系,アフィン変換の例,変換の例も参照のこと 。
メンバ型のドキュメント
enum QTransform::TransformationType
定数 | 値 |
---|---|
QTransform::TxNone | 0x00 |
QTransform::TxTranslate | 0x01 |
QTransform::TxScale | 0x02 |
QTransform::TxRotate | 0x04 |
QTransform::TxShear | 0x08 |
QTransform::TxProject | 0x10 |
メンバ関数ドキュメント
QTransform::QTransform()
単位行列を構築する。
m11
とm22
(スケールを指定) とm33
が 1 に設定される以外は、すべての要素が 0 に設定される。
reset()も参照 。
QTransform::QTransform(qreal m11, qreal m12, qreal m21, qreal m22, qreal dx, qreal dy)
m11,m12,m21,m22,dx,dy を要素とする行列を構築する。
setMatrix()も参照 。
QTransform::QTransform(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
要素m11,m12,m13,m21,m22,m23,m31,m32,m33 を持つ行列を作成する。
setMatrix()も参照 。
qreal QTransform::m11() const
水平スケーリング係数を返します。
scale() およびBasic Matrix Operations も参照 。
qreal QTransform::m12() const
垂直スケーリング係数: 垂直方向のスケーリング係数を返します。
shear() およびBasic Matrix Operationsも参照 。
qreal QTransform::m13() const
水平射影係数: 水平射影係数を返します。
translate() およびBasic Matrix Operations も参照 。
qreal QTransform::m21() const
水平シアリング係数: 水平方向のシアリング係数を返します。
shear() およびBasic Matrix Operations も参照 。
qreal QTransform::m22() const
垂直スケーリング係数:垂直方向のスケーリング係数を返します。
scale() およびBasic Matrix Operations も参照 。
qreal QTransform::m23() const
垂直投影係数:垂直方向の投影係数を返します。
translate() およびBasic Matrix Operations も参照 。
qreal QTransform::m31() const
水平変換倍率を返します。
dx()、translate()、およびBasic Matrix Operationsも参照 。
qreal QTransform::m32() const
垂直変換係数:垂直方向の変換係数を返します。
dy()、translate()、およびBasic Matrix Operationsも参照して ください。
qreal QTransform::m33() const
除算係数を返します。
translate() およびBasic Matrix Operationsも参照 。
QTransform QTransform::adjoint() const
adjoint関数は、この行列のアジョイントを返します。
qreal QTransform::determinant() const
行列式関数は、行列の行列式を返します。
qreal QTransform::dx() const
水平変換係数: 水平変換係数を返します。
m31()、translate()、およびBasic Matrix Operationsも参照して ください。
qreal QTransform::dy() const
垂直変換係数:垂直方向の変換係数を返します。
translate() およびBasic Matrix Operationsも参照して ください。
[static]
QTransform QTransform::fromScale(qreal sx, qreal sy)
sx を水平方向に,sy を垂直方向にスケーリングした行列を作成します.これは,QTransform().scale(sx, sy) と同じですが,若干高速です.
[static]
QTransform QTransform::fromTranslate(qreal dx, qreal dy)
dx を x 軸方向に,dy を y 軸方向に平行移動した行列を作成します.これはQTransform().translate(dx, dy) と同じですが,若干高速です.
QTransform QTransform::inverted(bool *invertible = nullptr) const
この行列の逆コピーを返します.
行列が特異行列(反転できない行列)である場合,返される行列は単位行列となります.invertible が有効な場合(つまり 0 ではない場合),行列が反転可能であればその値は true にセットされ,そうでなければ false にセットされます.
isInvertible()も参照してください .
bool QTransform::isAffine() const
行列がアフィン変換を表す場合はtrue
を返し,そうでない場合はfalse
を返します.
bool QTransform::isIdentity() const
行列が単位行列である場合はtrue
を返し,そうでない場合はfalse
を返します.
reset()も参照 .
bool QTransform::isInvertible() const
行列が可逆行列である場合はtrue
を返し,そうでない場合はfalse
を返す.
inverted()も参照 .
bool QTransform::isRotating() const
行列が何らかの回転変換を表している場合はtrue
を返し,そうでない場合はfalse
を返します.
注意: 180 度または 360 度の回転変換は,スケーリング変換として扱われます.
reset()も参照してください .
bool QTransform::isScaling() const
行列がスケーリング変換を表している場合はtrue
を返し,そうでない場合はfalse
を返します.
reset() も参照して ください.
bool QTransform::isTranslating() const
行列が平行移動変換を表している場合はtrue
を返し,そうでない場合はfalse
を返します.
reset()も参照して ください.
void QTransform::map(qreal x, qreal y, qreal *tx, qreal *ty) const
与えられた座標x とy を,この行列によって定義される座標系に写像します.結果として得られる値は,それぞれ *tx と *ty に格納されます.
座標は以下の式で変換されます:
x' = m11*x + m21*y + dx y' = m22*y + m12*x + dy if (!isAffine()) { w' = m13*x + m23*y + m33 x' /= w' y' /= w' }
点 (x, y) は元の点であり, (x', y') は変換後の点である.
QLine QTransform::map(const QLine &l) const
これはオーバーロードされた関数です。
この行列によって定義された座標系にマップされた、与えられた直線l のコピーであるQLineF オブジェクトを作成し、返します。
QLineF QTransform::map(const QLineF &line) const
これはオーバーロードされた関数です。
この行列によって定義される座標系にマップされた、与えられたline のコピーであるQLine オブジェクトを作成し返します。変換された座標は,最も近い整数に丸められることに注意してください.
QPainterPath QTransform::map(const QPainterPath &path) const
これはオーバーロードされた関数です。
この行列によって定義される座標系にマップされた,与えられたpath のコピーであるQPainterPath オブジェクトを作成し返します.
QPoint QTransform::map(const QPoint &point) const
これはオーバーロードされた関数です。
この行列によって定義される座標系にマップされた,与えられたpoint のコピーであるQPoint オブジェクトを作成し返します.変換された座標は,最も近い整数に丸められることに注意してください.
QPointF QTransform::map(const QPointF &p) const
これはオーバーロードされた関数です。
この行列によって定義される座標系にマップされた、与えられた点p のコピーであるQPointF オブジェクトを作成し返します。
QPolygon QTransform::map(const QPolygon &polygon) const
これはオーバーロードされた関数です。
この行列によって定義される座標系にマップされた、与えられた点polygon のコピーであるQPolygon オブジェクトを作成し返します。変換された座標は,最も近い整数に丸められることに注意してください.
QPolygonF QTransform::map(const QPolygonF &polygon) const
これはオーバーロードされた関数です。
この行列によって定義される座標系にマップされた,与えられたpolygon のコピーであるQPolygonF オブジェクトを作成し返します.
QRegion QTransform::map(const QRegion ®ion) const
これはオーバーロードされた関数です。
この行列によって定義された座標系にマップされた、与えられたregion のコピーであるQRegion オブジェクトを作成し返します。
このメソッドを呼び出すと,回転や剪断が使用されている場合,かなり高くつく可能性があります.
void QTransform::map(int x, int y, int *tx, int *ty) const
これはオーバーロードされた関数です。
与えられた座標x とy を,この行列によって定義された座標系に写像します.結果の値はそれぞれ *tx と *ty に入れられます。変換された座標は,最も近い整数に丸められることに注意してください。
QRectF QTransform::mapRect(const QRectF &rectangle) const
この行列によって定義される座標系にマップされた,与えられたrectangle のコピーであるQRectF オブジェクトを作成し返します。
矩形の座標は,以下の式を用いて変換されます:
x' = m11*x + m21*y + dx y' = m22*y + m12*x + dy if (!isAffine()) { w' = m13*x + m23*y + m33 x' /= w' y' /= w' }
rotation または shearing が指定されている場合,この関数は外接矩形を返します.与えられたrectangle がマップする正確な領域を取得するには,代わりにmapToPolygon() 関数を使います.
mapToPolygon() およびBasic Matrix Operationsも参照してください 。
QRect QTransform::mapRect(const QRect &rectangle) const
これはオーバーロードされた関数です。
この行列で定義された座標系にマップされた、与えられたrectangle のコピーであるQRect オブジェクトを作成し、返します。変換された座標は,最も近い整数に丸められることに注意してください.
QPolygon QTransform::mapToPolygon(const QRect &rectangle) const
この行列によって定義される座標系にマッピングされた,与えられたrectangle のQPolygon 表現を作成し返します.
矩形の座標は,以下の式を用いて変換されます.
x' = m11*x + m21*y + dx y' = m22*y + m12*x + dy if (!isAffine()) { w' = m13*x + m23*y + m33 x' /= w' y' /= w' }
多角形と矩形は,(整数の丸めによって)変換されるときの振る舞いが若干異なるので,matrix.map(QPolygon(rectangle))
はmatrix.mapToPolygon(rectangle)
と同じとは限りません.
mapRect() およびBasic Matrix Operationsも参照して ください.
[static]
bool QTransform::quadToQuad(const QPolygonF &one, const QPolygonF &two, QTransform &trans)
四辺形多角形one を別の四辺形多角形two に写す変換行列trans を作成します.変換が可能な場合はtrue
を返し,そうでない場合は false を返します.
これはquadToSquare() とsquareToQuad() を組み合わせた便利なメソッドです。これにより、入力四角形を他の任意の四角形に変換することができます。
squareToQuad() およびquadToSquare()も参照してください 。
[static]
bool QTransform::quadToSquare(const QPolygonF &quad, QTransform &trans)
四辺形多角形quad を単位正方形に写す変換行列trans を作成します。変換行列が作成された場合はtrue
を返し、そのような変換行列が存在しない場合は false を返します。
squareToQuad() およびquadToQuad()も参照してください 。
void QTransform::reset()
行列を単位行列にリセットします.つまり,すべての要素が 0 にセットされます.ただし,m11
とm22
(スケールを指定)とm33
は 1 にセットされます.
QTransform(),isIdentity(),Basic Matrix Operationsも参照してください .
[since 6.5]
QTransform &QTransform::rotate(qreal a, Qt::Axis axis, qreal distanceToPlane)
座標系を,スクリーンからの距離distanceToPlane で指定されたaxis を中心に,与えられた角度a だけ反時計回りに回転させ,その行列への参照を返す。
ウィジェット座標で定義された点にQTransform 、y軸が下を向いているため、回転方向は時計回りになることに注意してください。
角度は度単位で指定します。
distanceToPlane がゼロの場合、無視されます。これは、z座標が投影されるのではなく、落とされるべき正射投影を実装するのに適しています。
この関数は Qt 6.5 で導入されました。
setMatrix()も参照してください 。
QTransform &QTransform::rotate(qreal a, Qt::Axis axis = Qt::ZAxis)
これはオーバーロードされた関数です。
スクリーンからの距離 1024.0 で指定されたaxis を中心に、与えられた角度a だけ反時計回りに座標系を回転させ、その行列への参照を返します。
ウィジェット座標で定義された点にQTransform を適用すると、y軸が下を向くため、回転方向は時計回りになることに注意してください。
角度は度単位で指定します。
setMatrixも参照してください 。
[since 6.5]
QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis, qreal distanceToPlane)
座標系を、スクリーンからの距離distanceToPlane で指定されたaxis を中心に、指定された角度a だけ反時計回りに回転させ、その行列への参照を返します。
ウィジェット座標で定義された点にQTransform を適用すると、y軸が下を向いているため、回転方向は時計回りになることに注意してください。
角度はラジアン単位で指定します。
distanceToPlane がゼロの場合、無視されます。これは、z座標が投影されるのではなく、落とされるべき正射投影を実装するのに適しています。
この関数は Qt 6.5 で導入されました。
setMatrix()も参照してください 。
QTransform &QTransform::rotateRadians(qreal a, Qt::Axis axis = Qt::ZAxis)
これはオーバーロードされた関数です。
スクリーンからの距離 1024.0 で指定されたaxis を中心に、与えられた角度a だけ反時計回りに座標系を回転させ、その行列への参照を返します。
ウィジェット座標で定義された点にQTransform を適用すると、y軸が下を向くため、回転方向は時計回りになることに注意してください。
角度はラジアン単位で指定します。
setMatrix()も参照してください 。
QTransform &QTransform::scale(qreal sx, qreal sy)
座標系を水平方向にsx 、垂直方向にsy だけスケーリングし、その行列への参照を返します。
setMatrix()も参照 。
void QTransform::setMatrix(qreal m11, qreal m12, qreal m13, qreal m21, qreal m22, qreal m23, qreal m31, qreal m32, qreal m33)
行列の要素を、指定された値m11,m12,m13 m21 ,m22,m23 m31 ,m32 およびm33 に設定します。この関数は、以前の値を置き換えることに注意してください。QTransform には、現在定義されている座標系に基づいて行列のさまざまな要素を操作するための便利な関数、translate()、rotate()、scale()、shear() が用意されています。
QTransform()も参照 。
QTransform &QTransform::shear(qreal sh, qreal sv)
座標系を水平方向にsh 、垂直方向にsv に切断し、行列への参照を返します。
setMatrix()も参照して ください。
[static]
bool QTransform::squareToQuad(const QPolygonF &quad, QTransform &trans)
単位正方形を 4 辺の多角形quad に写す変換行列trans を作成します。変換行列が作成された場合はtrue
を返し,そのような変換行列が存在しない場合は false を返します.
quadToSquare() およびquadToQuad()も参照してください 。
QTransform &QTransform::translate(qreal dx, qreal dy)
座標系dx を x 軸に沿って、dy を y 軸に沿って移動し、その行列への参照を返します。
setMatrix() も参照 。
QTransform QTransform::transposed() const
この行列の転置行列を返します。
QTransform::TransformationType QTransform::type() const
この行列の変換型を返します。
変換型は、行列のすべての変換を表す列挙値の中で最も大きい値です。例えば,行列がスケールとシアの両方を行う場合,TxShear
の方がTxScale
よりも高い列挙値を持つので,その型はTxShear
となります.
行列の変換型を知ることは,最適化のために役立ちます.一般的な型を扱うよりも,特定の型を扱う方が,より最適に扱えることがよくあるからです.
QVariant QTransform::operator QVariant() const
変換をQVariant として返します.
bool QTransform::operator!=(const QTransform &matrix) const
この行列が与えられたmatrix と等しくない場合はtrue
を返し,そうでない場合はfalse
を返します.
QTransform QTransform::operator*(const QTransform &matrix) const
この行列に与えられたmatrix を乗算した結果を返します.
行列の乗算は可換ではないことに注意してください,つまり a*b != b*a です.
QTransform &QTransform::operator*=(const QTransform &matrix)
これはオーバーロードされた関数です。
この行列に与えられたmatrix を乗算した結果を返します.
QTransform &QTransform::operator*=(qreal scalar)
これはオーバーロードされた関数です。
この行列と与えられたscalar との要素毎の乗算の結果を返します.
QTransform &QTransform::operator+=(qreal scalar)
これはオーバーロードされた関数です.
この行列の各要素に,与えられたscalar を加算した行列を返します.
QTransform &QTransform::operator-=(qreal scalar)
これはオーバーロードされた関数です.
この行列の各要素から,与えられたscalar を引いた行列を返します.
QTransform &QTransform::operator/=(qreal scalar)
これはオーバーロードされた関数です。
与えられたscalar によって,この行列を要素毎に除算した結果を返します.
[noexcept]
QTransform &QTransform::operator=(const QTransform &matrix)
与えられたmatrix の値をこの行列に代入します.
bool QTransform::operator==(const QTransform &matrix) const
この行列が与えられたmatrix と等しい場合はtrue
を返し,そうでない場合はfalse
を返します.
関連する非メンバ
[noexcept]
bool qFuzzyCompare(const QTransform &t1, const QTransform &t2)
t1 とt2 が等しい場合はtrue
を返し,浮動小数点比較のための小さなファジー要素を許容します.
[noexcept]
size_t qHash(const QTransform &key, size_t seed = 0)
seed を計算の種として使用し、key のハッシュ値を返す。
QLine operator*(const QLine &line, const QTransform &matrix)
これはmatrix.map(line) と同じである。
QTransform::map()も参照 。
QLineF operator*(const QLineF &line, const QTransform &matrix)
matrix.map(line) と同じ。
QTransform::map() も参照 。
QPainterPath operator*(const QPainterPath &path, const QTransform &matrix)
matrix.map(path) と同じです。
QTransform::map() も参照 。
QPoint operator*(const QPoint &point, const QTransform &matrix)
matrix.map(point) と同じです。
QTransform::map() も参照 。
QPointF operator*(const QPointF &point, const QTransform &matrix)
matrix.map(point) と同じ。
QTransform::map() も参照 。
QPolygon operator*(const QPolygon &polygon, const QTransform &matrix)
matrix.map(polygon) と同じ。
QTransform::map() も参照 。
QPolygonF operator*(const QPolygonF &polygon, const QTransform &matrix)
matrix.map(polygon) と同じ。
QTransform::map() も参照 。
QRegion operator*(const QRegion ®ion, const QTransform &matrix)
matrix.map(region) と同じ。
QTransform::map()も参照 。
QDataStream &operator<<(QDataStream &stream, const QTransform &matrix)
指定されたmatrix を指定されたstream に書き込み、ストリームへの参照を返します。
Qt データ型のシリアライズ」も参照して ください。
QDataStream &operator>>(QDataStream &stream, QTransform &matrix)
与えられたstream から与えられたmatrix を読み込み、ストリームへの参照を返します。
Qt データ型のシリアライズ」も参照して ください。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。