Post on 25-Jan-2015
description
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