Core Graphics   >     CGAffineTransform
構造体
CGAffineTransform
2D グラフィックスの描画に使用するアフィン変換行列。
概観
アフィン変換行列は、グラフィックスコンテキストで描画するオブジェクトを回転、拡大縮小、平行移動、または傾斜させるために使用されます。CGAffineTransform 型は、アフィン変換を作成、連結、適用するための関数を提供します。
アフィン変換は 3×3 の行列で表されます。
図 1
3 番目の列は常に (0,0,1) なので、CGAffineTransform データ構造体には最初の 2 つの列の値だけが含まれます。
概念的には、アファイン変換は、図の各点(x、y) を表す行ベクトルにこの行列を乗算し、対応する点(x'、y') を表すベクトルを生成します。
図 2
3×3 の行列が与えられると、ある座標系の点(x、y) を別の座標系の点(x'、y') に変換するために以下の式が使用されます。
図 3
このため、行列は 2 つの座標系を"リンク" します。これは、ある座標系の点が別の座標系にどのようにマップするかを指定します。
通常は、アフィン変換を直接作成する必要はありません。たとえば、拡大縮小または回転されたオブジェクトを描画するだけでよい場合は、アフィン変換を構築する必要はありません。移動、拡大縮小、回転を問わず、描画を操作する最も直接的な方法は、translateBy(x:y:)、scaleBy(x:y:)、または rotate(by:) の各関数を呼び出すことです。後で再利用したい場合は、アフィン変換を作成するのが一般的です。
シンボル
イニシャライザ
init()
init(a: CGFloat, b: CGFloat, c: CGFloat, d: CGFloat, tx: CGFloat, ty: CGFloat)
init(rotationAngle: CGFloat)
指定した回転値から構築されたアフィン変換行列を返します。
init(scaleX: CGFloat, y: CGFloat)
指定したスケール値から構築されたアフィン変換行列を返します。
init(translationX: CGFloat, y: CGFloat)
指定した変換値から構築されたアフィン変換行列を返します。
インスタンスプロパティー
var a: CGFloat
行列内の位置 [1,1] のエントリ。
var b: CGFloat
行列内の位置 [1,2] のエントリ。
var c: CGFloat
行列内の位置 [2,1] のエントリ。
var d: CGFloat
行列内の位置 [2,2] のエントリ。
var isIdentity: Bool
アフィン変換が恒等変換であるかどうかをチェックします。
var tx: CGFloat
行列内の位置 [3,1] のエントリ。
var ty: CGFloat
行列内の位置 [3,2] のエントリ。
型プロパティー
static var identity: CGAffineTransform
恒等変換:
インスタンスメソッド
func concatenating(CGAffineTransform)
既存の 2 つのアフィン変換を組み合わせて構成されるアフィン変換行列を返します。
func inverted()
既存のアフィン変換を反転して構成したアフィン変換行列を返します。
func rotated(by: CGFloat)
既存のアフィン変換を回転させて構成したアフィン変換行列を返します。
func scaledBy(x: CGFloat, y: CGFloat)
既存のアファイン変換を拡大縮小して構築されたアフィン変換行列を返します。
func translatedBy(x: CGFloat, y: CGFloat)
既存のアファイン変換を変換することによって構築されたアフィン変換行列を返します。
関連
以下に準拠