GEOMETRIC TRANSFORMATIONS
-
Upload
ramona-gomez -
Category
Documents
-
view
46 -
download
0
description
Transcript of GEOMETRIC TRANSFORMATIONS
GEOMETRIC TRANSFORMATIONS
Yingcai Xiao
Roadmap to Geometric Transformations
Start with 2D GT Extend to 3D GTPreview mathematicsExpress GT in four type of
notations◦Algebraic◦Matrix◦Logical◦Visual
Review of Mathematical Preliminaries
Mathematical NotationsPoints:
0
00
yx
P
1
11 y
xP
Vectors: directional lines
P1(x1,y1)
P0(x0,y0)
01
0110 yy
xxPPV
Vy
Vx
yx
V
1. A vector has a direction and a length: Length: |V|=(x2 + y2)1/2 A unit vector: |V| = 1 e.g.:
Normalize a vector:
2. Add two vectors
01
x
10
y
VV
v
v
yx
V
w
w
yx
W
wv
wv
yyxx
WV
3. Scalar Multiplication
yx
yx
V
4. Dot product of two vectors scalar,
wvwv yyxxWV
WVWV
)cos(
V
W
•
V W if = 90 => cos = 0 => V W = 0. if < 90 => cos > 0 => V W > 0. if > 90 => cos < 0 => V W < 0.
5.Normal: a unit vector perpendicular to a surface
. Lines y = mx+b e.g.: y = x; ax+by+c=0
Let f(x,y) = ax + by + cA point p(xp,yp) is on the line if f(xp,yp) = 0.When b < 0:p(xp,yp) is above the line if f(xp,yp) < 0.p(xp,yp) is below the line if f(xp,yp) > 0.When b > 0:p(xp,yp) is above the line if f(xp,yp) > 0.p(xp,yp) is below the line if f(xp,yp) < 0.
Parametric Form: P(t)=P0+t(P1-P0); 0 <= t <= 1
P1(x1,y1)
P0(x0,y0)
P(t)=P0+t(P1-P0)
y(t)x(t)
y0
x0
y1
x1 t *(
y0
x0
)(*)(*
)()(
01
01
0
0
yytxxt
yx
tytx
Where,x(t) = x0 + t * (x1 – x0)y(t) = y0 + t * (y1 – y0)0 <= t <= 1
x(t) = (1-t) * x0 + t * x1 y(t) = (1-t) * y0 + t * y10 <= t <= 1
2D Transformations Translate a point The algebraic representation of translation of point P(x,y) by D(dx,dy) is x’= x + dx y’= y + dy Its “matrix” representation is
x’
y’
d x
d y
x
y
Its logical representation is
P’ = P + D Its visual representation is
P’ (x’,y’)
P(x,y) D(dx,dy)
To move a shape: translate every vertex of the shape
0 5 10
5
10
X
Y
Before Translation
(4,5) (7,5)
After Translation
0 5 10
5
10
X
Y
(7,1)(10,1)
Scaling (relative to the origin) Scale a point P(x,y) by S(sx, sy)
Algebraic: x’=sx* x
y’=sy* y
Matrix:
s
s
y
x
0
0
S
yx
ss
yx
y
x
00
''
Logic: P’ = SP or P’ = S(sx, sy)P
Scale a line P0P1 (scale each point) P0’=SP0
P1’=SP1
Scale a shape: scale every vertex of the shape. Visual representation
0 5 10
5
10
X
Y
Before Scaling
(4,5) (7,5)
0 5 10
5
10
X
Y
After Scaling
(2,5/4)
(7/2,5/4)
Uniform Scaling: sx=sy
Rotate (around the origin)Positive angles are measured counterclockwise from x axis to y axis. Rotate point (x,y) around the originAlgebraic representation:
x’ = x * cos - y * siny’ = x * sin + y * cos
Matrix representation:
Logic representation:
P’ = R P
Visual representation
0 5 10
5
10
X
Y
0 5 10
5
10
X
Y
Rotate a shape: rotate every vertex of the shape
After Before
0 5 10
5
10
X
Y
(2.1, 4.9)
(4.9, 7.8)
0 5 10
5
10
X
Y
(5,2) (9,2)
Before Rotation After Rotation
Summary Translation: P’ = P + D Scaling: P’ = S P Rotation: P’ = R P
1yx
wywxw
yx
Homogeneous Coordinates: P(x,y,w) (x,y) to (x,y,w) :
(x,y,w) to (x,y)
1
/
/
w y
w x
w
y
x
),(
1001001
dydx
dydxT
' P T P
1 0 0
1 0
0 1
dy
dx
1
y
x
1
dy y
dx x
y’= y + dyw’=1x’= x + dx
P’’ = T(dx2 , dy2)P’ = T(dx2 , dy2) T(dx1 , dy1) P = T(dx2+dx1, dy2+dy1) P
Scaling P’=S(Sx, Sy)P
11000000
W''
yx
ss
yx
y
x
P’’ = S(Sx2 , Sy2)P’ = S(Sx2 , Sy2)S(Sx1 , Sy1) P = S(Sx2Sx1, Sy2Sy1)P
P’’=R(2)R(1)PP”=R(2+1)P
Rotation P’=R()P
1 1 0 0
0 cos sin
0 sin cos
1
' '
y
x
y
x
Shear Transformation: SHx(a) and SHy(b) P’=SHx(a)P
110001001
'''
yxa
wyx
Shear in x against y by a (or an angle). x’ = x+ay y’ = y w’=1
P’=SHy(b)P
110001001
'''
yx
bwyx
Shear in y against x by b (or an angle). x’=x y’=y + bx w’=1.
0 5 10
5
10
X
Y
0 5 10
5
10
X
Y
Sheared in x Sheared in y
0 5 10
5
10
X
Y
Before Shear
Rigid-body Transformation: T and R.change: location, orientation; not change: size, angle between elements.Affine Transformation: S, SHchange: size, location, angle; not change: line (parallelism).Note: uniform scaling is between the two. It
changes size but not angle.So far, our S, R, SH are all around the origin.
Composition of 2D Transformation
Rotate the house around P1For every vertex (P) on the object: P’ = T(P1)R()T(-P1)Py y
x
After translation
of P1 to origin
y
xAfter rotation
y
x
P1
After translation
To P1
Scale and rotate the house around P1 and move it to P2y
xP1
Original
house
y
xP1
Translate P1
to originy
x
Scale
y
x
Rotate
y
x
P2
Translate to
final position P2
For every vertex (P) on the object: P’ = T(P2) R()S(Sx,Sy)T(-P1)P. Swap the order of operations: not permitted, except uniform scaling (sx=sy) can be swapped
with rotation.
Window-to-Viewport Transformationworld-coordinate: inches, feet etc & screen-coordinate: pixels
y
World coordinates
Windowx
y
Screen coordinatesWindow
x
y
World coordinatesWindow x
y
Screen coordinates
Viewport 1 x
Viewport 2
Window in
world coordinates
Window translated
to origin
Window scale to
size of viewportTranslated by (u,v)
to final position
Maximum range of
screen coordinates
Matrix Representation of 3D Transformation
x
y
z
Translation:
1 0 00 1 0
( , , )0 0 10 0 0 1
dxdy
T dx dy dzdz
Scaling: 0 0 00 0 0
( , , )0 0 00 0 0 1
x
yx y z
z
ss
S s s ss
Rotation, around Z-axis:
cos sin 0 0sin cos 0 0
( )0 0 1 0 0 0 0 1
Rz
Rotation, around X-axis:
1 0 0 00 cos sin 0
( )0 sin cos 0 0 0 0 1
Rx
Rotation, around Y-axis:
cos 0 sin 00 1 0 0
( )-sin 0 cos 0 0 0 0 1
Ry
Projection: Project 3D objects on to a 2D surface
(0,0,0)
d z
z
P( x, y, z )x
P’(xp, yp, zp)
xp
Projection Plane (View Plane)
( / ) 1p
p
x x d x xxd z d z d z d
( / ) 1p
p
y y d y yyd z d z d z d
xp= x’ / w’ = x / (z/d + 1)yp= y’ / w’ = y / (z/d + 1)
1 0 0 0'0 1 0 0'0 0 0 0'
1' 10 0 1
x xy yz zw
d
''' 0' ( / ) 1
x xy yzw z d
Foreshortening: The size of the projected object becomes
smaller when the object moves away from the eye.
z
P’1
P’2
P1 P2
Perspective Projection: the projection that has the foreshortening effect.
' '
1 0 0 00 1 0 0
; ' ;0 0 0 010 0 1
per perM P M P
d
0
For computer-aided design (CAD), we can not have foreshortening. A meter long object should always measures to 1 meter regardless where it is.
Parallel Projection: d , lines of sight become parallel
View Plan
z
P1
P2
(0,0,0)
0
1 0 0 00 1 0 0
;0 0 0 00 0 0 1
par p pM x x y y
Summary2D GTHomogeneous coordinates3D GTRigid body transformationAffine transformation Perspective Projection &
Foreshortening Parallel Projection