Qtの基礎 - 2次元変換行列
ナビゲーションに移動
検索に移動
概要
Qtにおいて、QTransformation
クラスを使用して、変換行列の作成および作成した変換行列を図形に適用することができる。
2次元変換行列
以下のように、変換行列を作成する。
回転
正の回転方向は、反時計回りである。
第2引数は回転軸で、省略した場合はZ軸になる。
QTransform transR;
transR.rotate("回転角(度)");
transR.rotateRadians("回転角(ラジアン)");
移動
QTransform transT;
transT.translate("X移動量", "Y移動量");
拡大・縮小
QTransform transS;
transS.scale("X拡大量", "Y拡大量");
作成した行列を図形に適用するには、以下のようにする。
QTransform transR;
// 点に適用
QPointF pntDst = transR.map(pntSrc);
行列が回転、平行移動、投影変換を表す場合は、mapRect
メソッドを使用して変換先図形の外接矩形を求めることができる。
QTransform transR;
// 変換先図形の外接矩形を求める
QRectF rcDst = transR.mapRect(rcSrc);
行列要素を直接参照する場合は、m11
メソッドやm12
メソッド等の関数を使用する。
(メソッド名は、1から始まるので注意すること)