Affine transformations 1

Preview:

DESCRIPTION

 

Citation preview

Affine 변환 (Transforamtions)

PowerSaw( 전기톱 )

Affine 의 뜻• 발음 [æfáin,əfáin]• af + fin + e• af(ad): 접두사 toward(s), according to• fin : 경계 (boundary), 끝 , 유한

finish( 끝나다 ), finite( 유한의 ), infinite( 무한의 )

• 유한한 개체 , 점 (Point) 을 다룬다 .• 무한값 입력 X / 무한값 결과 X• 기하학적 뜻 : 평행을 유지

Affine 공간 (space)

• 벡터 ( 선형 ) 공간의 단점 : 고정된 하나의 원점이 언제나 필요 . 이동의 개념이 없음

• ( 점들로 꽉 차있는 공간 ) + ( 벡터 공간 )• 점을 하나의 벡터로 간주 할 수도 !!!• 벡터와 점을 동시에 사용 .

vPP 01 PPv

Affine 조합 (Combination)

• Affine 공간에서 아무 점 P 는 덧셈과 스칼라값곱을 이용하여 다른 점들의 조합으로 표현될 수 있다 .

kk PaPaPaP 1100

단 , 다음을 만족시 킬 경우에만 !

110 kaaa

1

1

)1(

)1(

)()(

)()(

210

221100

210

2211021

2211021

022201110

0220110

0220110

22110

2211

0

0

aaa

PaPaPaP

aaa

PaPaPaaP

OPaOPaOPaaOP

OPaOPaOPaOPaOPOP

OPOPaOPOPaOPOP

PPaPPaPP

vavaPP

vavav

PPv

vPP

kk

2211021

2211021

022201110

0220110

0220110

)1(

)1(

)()(

)()(

PaPaPaaP

XPaXPaXPaaXP

XPaXPaXPaXPaXPXP

XPXPaXPXPaXPXP

PPaPPaPP

원점 O가 아닌 임의점 X에서도 똑같이 식이 성립된다는 점 !

Affine 변환의 목적• 이동 (Translation) - Affine• 회전 (Rotation) - Linear• 확대 / 축소 (Scaling) - Linear• 반사 (Reflection) - Linear• 엇갈림 변형 (Shear) – Linear

Affine 변환의 개념• 점과 벡터에대한 연산을 하나의 수식에서

처리하고자 하는 욕심 !

• L(x) 는 선형 (Linear) 변환 , x 는 점 , t(translate)는 이동

• x 가 벡터일 경우 t 는 필요 없다 .

txLxT )()(

)()( xLxT

벡터에 Affine 변환 적용

• T(P-Q)=L(P-Q)=L(P)-L(Q)P-Q 는 벡터이므로 t 가 없어진다 .• T(P)-T(Q)=(L(P)+t)-(L(Q)+t)=L(P)-L(Q)

)()()( QTPTQPT

Affine 변환 정의

)()()(

)()(

1100

1100

kk

kk

PTaPTaPTa

PaPaPaTPT

)()()( 11001100 PTaPTaPaPaT

kk PaPaPaP 1100

)(110

0

PT

vavaPP

PPv

kk

ii

))(())(()(

))(())(()(

))()(())()(()(

)()()()1(

))1((

))()((

)(

110

00110

00110

1101

1101

00110

110

kk

kk

kk

kkk

kkk

kk

kk

vTavTaPT

PPTaPPTaPT

PTPTaPTPTaPT

PTaPTaPTaa

PaPaPaaT

PPaPPaPT

vavaPT

<= 이런 모양도 ?

))(())(()(

)(

110

110

kk

kk

vTavTaPT

vavaPT

Affine 변환의 실체

• L 은 선형 (Linear) 변환을 전담 하는 블록 (block) 행렬 , 확대 / 축소 , 회전 , 반사 , Shear 전담

• x 는 변환할 대상 점• t 는 이동 (translation) 을 의미하는 벡터• 이 변환식을 하나의 행렬로 !!!!

tLxxT )(

tLxx

tL

1

'

'

'

1

1

2,21,20,2

2,11,10,1

2,01,00,0

2,21,20,2

2,11,10,1

2,01,00,0

2,21,20,2

2,11,10,1

2,01,00,0

z

y

x

z

y

x

t

t

t

lll

lll

lll

t

t

t

z

y

x

lll

lll

lll

z

y

x

t

t

t

lll

lll

lll

z

y

x

z

y

x

z

y

x

그런데 x 가 벡터라면 ?

T(x) = Lx + t

t(translation: 이동 ) 는 필요 없다 . 그래서 행렬을 그대로 살리면서 t 를 없애는 방법

LxtLxx

tL

00

z'

y'

x'

z

y

x

tlll

tlll

tlllP

tL

z

y

x

1

12,21,20,2

2,11,10,1

2,01,00,0

z'

y'

x'

z

y

x

t

t

t

lll

lll

lllv

tL

z

y

x

,,,

,,,

,,,

0

0221202

211101

201000

는 벡터 ? 점 ? 정체가 ~~~

z'

y'

x'

변환식에 다시 쓸수가 없네 !

111]000[

110 2,21,20,2

2,11,10,1

2,01,00,0

z'

y'

x'

z

y

x

tlll

tlll

tlll

PtL

z

y

x

T

001]000[

010 2,21,20,2

2,11,10,1

2,01,00,0

z'

y'

x'

z

y

x

tlll

tlll

tlll

vtL

z

y

x

T

3 차원 Affine 변환행렬 완성 !

1000

10 2,21,20,2

2,11,10,1

2,01,00,0

z

y

x

T tlll

tlll

tlll

tL

점 연산

01101

01

01

0

0

0

1

1

1

01 zz

yy

xx

z

y

x

z

y

x

PPv

31

32

131

032

131

032

131

032

1

1

1

0

0

0

1100

1

3

1

1

3

2zz

yy

xx

z

y

x

z

y

x

PaPaP

정식 (formal) 표기

• Affine 공간 A: 기본 (basis) 벡터 (vx,vy,vz), 원점 OA, 변환대상 점 P=(px,py,pz)

zzyyxxA v pvpv p OP

• Affine 공간 B: 기본 (basis) 벡터 (wx,wy,wz), 원점 OB, 이동 t=(tx,ty,tz)

)T(v p)T(vp)T(v p) T(O

)v pvpv p T(OT(P)

zzyyxxA

zzyyxxA

• OA=(0,0,0) 은 어떤 선형변환을 해도 (0,0,0)

zzyyxxB

B

A

wtwtwtO

tO

t),, (

t),,(L)T(O

000

000

) T(O)T(v pvTp)T(v p

T(P)

Azzyyxx )(

1)(

)(

)(

)(

2,22,12,0

1,21,11,0

0,20,10,0

Bzzyyxx

zzyx

yzyx

xzyx

Owtwtwt

pwawawa

pwawawa

pwawawa

10002,21,20,2

2,11,10,1

2,01,00,0

z

y

x

B

zzzzz

yyyyy

xxxxx

p

p

p

O

wtwawawa

wtwawawa

wtwawawa

T(vx) T(vy) T(vz) T(OA)

1111)(PT

11000

)(

2,21,20,2

2,11,10,1

2,01,00,0

z

y

x

z

y

x

Bzyx

p

p

p

taaa

taaa

taaa

OwwwPT

Recommended