CGAffineTransformMake(a,b,c,d,tx,ty)
a d ズーム b c 回転 tx ty 変位
の公式は
x' = ax + cy + tx
y' = bx + dy + ty
行列の基本:
struct CGAffineTransform {
CGFloat a, b, c, d;
CGFloat tx, ty;
};
CGAffineTransform CGAffineTransformMake; CGAffineTransformMake。
二次元の図形の変化を座標系で統一するために、カイ二乗座標の概念が導入されました。つまり、図形は三次元の行列で表され、三列目は常に座標系の基準として使用されます。つまり、すべての変更は最初の2列によって行われます。
上記のパラメータは、マトリックスで次のように表されます:
動作原理:元の座標を
| a b 0 |
(X,Y, 1) | c d 0 | = (aX + cY + tx , bX + dY + ty , 1) ;
| tx ty 1 |
行列演算の座標は、互いに比較することでわかります:
i.a=d=1, b=c=0 とします。
=
この時、座標はベクトル
つまり,関数CGAffineTransform CGAffineMakeTranslation(CGFloat tx,CGFloat ty) の計算原理です.
b = c = tx = ty = 0 とします。
=
この時、座標Xはaに従ってスケーリングされ、Yはdに従ってスケーリングされることがわかります。
すなわち,関数CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy) の計算原理.
aはsx、dはsyに対応します。
tx=ty=0, a=cosβ, b=sinβ, c=-sinβ, d=cosβ とします。
=
この時、βは回転角で、反時計回りが正、時計回りが負であることがわかります。
つまり,関数CGAffineTransform CGAffineTransformMakeRotation(CGFloat angle) の計算原理です.
角度、すなわちβのラジアン表示。