affine transform

Post on 08-Aug-2015

28 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

アフィン変換の話宇佐見 公輔

どこで出てくるか

ビューを変形する• iOS での例 : CGAffineTransform

• UIView の transform プロパティ:平行移動、拡大縮小、回転、など

フォントを変形する• CTFontCreate の引数に渡す : 斜体フォントを作る

アフィン変換は 図形の変形に使われている

図形の変形

図形の変形• 合同変換(ユークリッド変換)

• 相似変換

• アフィン変換

• 射影変換

合同変換• 平行移動、回転、反転

• 長さを保つ

• 角度を保つ

• → 図形の形や大きさを変えない

相似変換• 合同変換 + 拡大・縮小

• 長さの比を保つ(長さを保たない)

• 角度を保つ

• → 図形の形を変えない(大きさは変わる)

アフィン変換• 相似変換 + 剪断変形(正方形を菱形に)

• 長さの比を保つ

• 平行性を保つ(直角性を保たない)

• → 図形の形が変わる(斜めになる)

射影変換• アフィン変換 + 扇形変形

• 長さの比を保たない

• 直線性を保つ(平行性・直角性を保たない)

• → 図形の形が変わる

アフィン変換のイメージ形は変わるけど、平行なものは平行なまま

アフィン変換 = 平行移動、回転、反転、 拡大縮小、剪断

変換の数式

Lightning Talk なので軽めに

回転の数式

✓x

0

y

0

◆=

✓cos(t) � sin(t)

sin(t) cos(t)

◆✓x

y

平行移動+回転の数式

✓x

0

y

0

◆=

✓cos(t) � sin(t)

sin(t) cos(t)

◆✓x

y

◆+

✓e

f

アフィン変換の数式

✓x

0

y

0

◆=

✓a b

c d

◆✓x

y

◆+

✓e

f

変換の合成 (行列表現のメリット)

✓a1 b1c1 d1

◆✓a2 b2c2 d2

同次座標による表現 (平行移動も行列に含める)0

@x

0

y

0

1

1

A =

0

@a b e

c d f

0 0 1

1

A

0

@x

y

1

1

A

まとめ

アフィン変換は 簡単に使えて便利なので 知っておくとよい

top related