9548086042 for call girls in Indira Nagar with room service
Geometric transformation cg
1. Introduction to
Computer Graphics
CS 445 / 645
Lecture 5
Transformations
M.C. Escher – Smaller and Smaller (1956)
2. Modeling Transformations
Specify transformations for objects
• Allows definitions of objects in own coordinate systems
• Allows use of object definition multiple times in a scene
– Remember how OpenGL provides a transformation stack
because they are so frequently reused
Chapter 5 from Hearn and Baker
H&B Figure 109
3. Overview
2D Transformations
• Basic 2D transformations
• Matrix representation
• Matrix composition
3D Transformations
• Basic 3D transformations
• Same as 2D
4. 2D Modeling Transformations
Modeling
Coordinates
Scale
y Translate
x
Scale
Rotate
Translate
World Coordinates
9. 2D Modeling Transformations
Modeling
Coordinates
y
x
Scale .3, .3
Rotate -90
Translate 5, 3
World Coordinates
10. Scaling
Scaling a coordinate means multiplying each of its
components by a scalar
Uniform scaling means this scalar is the same for all
components:
×2
12. Scaling
Scaling operation: x' ax
y ' = by
Or, in matrix form: x ' a 0 x
y ' = 0 y
b
scaling matrix
13. 2-D Rotation
(x’, y’)
(x, y)
x’ = x cos(θ) - y sin(θ)
θ y’ = x sin(θ) + y cos(θ)
14. 2-D Rotation
x = r cos (φ)
y = r sin (φ)
x’ = r cos (φ + θ)
y’ = r sin (φ + θ)
(x’, y’)
Trig Identity…
(x, y) x’ = r cos(φ) cos(θ) – r sin(φ) sin(θ)
y’ = r sin(φ) sin(θ) + r cos(φ) cos(θ)
θ φ
Substitute…
x’ = x cos(θ) - y sin(θ)
y’ = x sin(θ) + y cos(θ)
15. 2-D Rotation
This is easy to capture in matrix form:
x ' cos(θ ) − sin (θ ) x
y ' = sin (θ ) cos(θ ) y
Even though sin(θ) and cos(θ) are nonlinear functions
of θ,
• x’ is a linear combination of x and y
• y’ is a linear combination of x and y
16. Basic 2D Transformations
Translation:
• x’ = x + tx
• y’ = y + ty
Scale:
• x’ = x * sx
• y’ = y * sy
Shear: Transformations
• x’ = x + hx*y can be combined
• y’ = y + hy*x
(with simple algebra)
Rotation:
• x’ = x*cosΘ - y*sinΘ
• y’ = x*sinΘ + y*cosΘ
17. Basic 2D Transformations
Translation:
• x’ = x + tx
• y’ = y + ty
Scale:
• x’ = x * sx
• y’ = y * sy
Shear:
• x’ = x + hx*y
• y’ = y + hy*x
Rotation:
• x’ = x*cosΘ - y*sinΘ
• y’ = x*sinΘ + y*cosΘ
18. Basic 2D Transformations
Translation:
• x’ = x + tx
• y’ = y + ty
Scale: (x,y)
• x’ = x * sx (x’,y’)
• y’ = y * sy
Shear:
• x’ = x + hx*y
x’ = x*sx
• y’ = y + hy*x
y’ = y*sy
Rotation:
• x’ = x*cosΘ - y*sinΘ
• y’ = x*sinΘ + y*cosΘ
19. Basic 2D Transformations
Translation:
• x’ = x + tx
• y’ = y + ty
Scale:
• x’ = x * sx
• y’ = y * sy
Shear: (x’,y’)
• x’ = x + hx*y x’ = (x*sx)*cosΘ - (y*sy)*sinΘ
• y’ = y + hy*x y’ = (x*sx)*sinΘ + (y*sy)*cosΘ
Rotation:
• x’ = x*cosΘ - y*sinΘ
• y’ = x*sinΘ + y*cosΘ
20. Basic 2D Transformations
Translation:
• x’ = x + tx
• y’ = y + ty
Scale: (x’,y’)
• x’ = x * sx
• y’ = y * sy
Shear:
• x’ = x + hx*y
x’ = ((x*sx)*cosΘ - (y*sy)*sinΘ) + tx
y’ = ((x*sx)*sinΘ + (y*sy)*cosΘ) + ty
• y’ = y + hy*x
Rotation:
• x’ = x*cosΘ - y*sinΘ
• y’ = x*sinΘ + y*cosΘ
21. Basic 2D Transformations
Translation:
• x’ = x + tx
• y’ = y + ty
Scale:
• x’ = x * sx
• y’ = y * sy
Shear:
• x’ = x + hx*y
x’ = ((x*sx)*cosΘ - (y*sy)*sinΘ) + tx
y’ = ((x*sx)*sinΘ + (y*sy)*cosΘ) + ty
• y’ = y + hy*x
Rotation:
• x’ = x*cosΘ - y*sinΘ
• y’ = x*sinΘ + y*cosΘ
22. Overview
2D Transformations
• Basic 2D transformations
• Matrix representation
• Matrix composition
3D Transformations
• Basic 3D transformations
• Same as 2D
23. Matrix Representation
Represent 2D transformation by a matrix
a b
c
d
Multiply matrix by column vector
⇔ apply transformation to point
x' = a b x x' = ax + by
y ' c
d y
y ' = cx + dy
24. Matrix Representation
Transformations combined by multiplication
x' = a b e f i j x
y ' c
d g
h k
l y
Matrices are a convenient and efficient way
to represent a sequence of transformations!
25. 2x2 Matrices
What types of transformations can be
represented with a 2x2 matrix?
2D Identity?
x' = x x' = 1 0 x
y' = y y ' 0
1 y
2D Scale around (0,0)?
x' = s x * x x ' s x 0 x
y' = s y * y y ' = 0 s y y
26. 2x2 Matrices
What types of transformations can be
represented with a 2x2 matrix?
2D Rotate around (0,0)?
x ' = cos Θ* x − sin Θ* y x ' cos Θ − sin Θ x
y ' = sin Θ* x + cos Θ* y y ' = sin Θ cos Θ y
2D Shear?
x ' = x + shx * y x ' 1 shx x
y ' = shy * x + y y ' = sh 1 y
y
27. 2x2 Matrices
What types of transformations can be
represented with a 2x2 matrix?
2D Mirror about Y axis?
x ' = −x x' = −1 0 x
y' = y y ' 0 1 y
2D Mirror over (0,0)?
x ' = −x x' = −1 0 x
y' = −y y ' 0 −1 y
28. 2x2 Matrices
What types of transformations can be
represented with a 2x2 matrix?
2D Translation?
x' = x + t x
NO!
y' = y + t y
Only linear 2D transformations
can be represented with a 2x2 matrix
29. Linear Transformations
Linear transformations are combinations of …
• Scale,
x' a b x
y ' = c
• Rotation,
• Shear, and d y
• Mirror
Properties of linear transformations:
• Satisfies: T ( s1p1 + s2p 2 ) = s1T (p1 ) + s2T (p 2 )
• Origin maps to origin
• Lines map to lines
• Parallel lines remain parallel
• Ratios are preserved
• Closed under composition
31. Homogeneous Coordinates
Homogeneous coordinates
x
• represent coordinates in 2 x homogeneous coords
dimensions with a 3-vector y → y
1
Homogeneous coordinates seem unintuitive, but they
make graphics operations much easier
32. Homogeneous Coordinates
Q: How can we represent translation as a 3x3 matrix?
x' = x + t x
y' = y + t y
A: Using the rightmost column:
1 0 tx
Translation = 0 1 ty
0 0 1
33. Translation
Homogeneous Coordinates
Example of translation
α x ' 1 0 t x x x + t x
y ' = 0 1 t y = y + t
y y
1 0 0 1 1 1
tx = 2
ty = 1
34. Homogeneous Coordinates
Add a 3rd coordinate to every 2D point
• (x, y, w) represents a point at location (x/w, y/w)
• (x, y, 0) represents a point at infinity
• (0, 0, 0) is not allowed y
2
(2,1,1) or (4,2,2) or (6,3,3)
1
Convenient coordinate 1 2 x
system to
represent many useful
transformations
35. Basic 2D Transformations
Basic 2D transformations as 3x3 matrices
x ' s x 0 0 x
x ' 1 0 t x x y ' = 0 sy 0 y
y ' = 0
1 t y y
1 0
0 11
1 0
0 1 1
Translate Scale
x' cos Θ − sin Θ 0 x x ' 1 shx 0 x
y ' = sin Θ 0 y y ' = sh
cos Θ y 1 0 y
1 0
0 11
1 0
0 11
Rotate Shear
36. Affine Transformations
Affine transformations are combinations of …
• Linear transformations, and x ' a b c x
y ' = d e f y
• Translations w 0
0 1 w
Properties of affine transformations:
• Origin does not necessarily map to origin
• Lines map to lines
• Parallel lines remain parallel
• Ratios are preserved
• Closed under composition
37. Projective Transformations
Projective transformations …
x' a b c x
• Affine transformations, and y ' = d e f y
w' g
h i w
• Projective warps
Properties of projective transformations:
• Origin does not necessarily map to origin
• Lines map to lines
• Parallel lines do not necessarily remain parallel
• Ratios are not preserved
• Closed under composition
38. Overview
2D Transformations
• Basic 2D transformations
• Matrix representation
• Matrix composition
3D Transformations
• Basic 3D transformations
• Same as 2D
39. Matrix Composition
Transformations can be combined by
matrix multiplication
x ' 1 0 tx cos Θ − sin Θ 0sx 0 0 x
y ' = 0 1 ty sin Θ cos Θ 0 0 sy y
0
w' 0
0 1 0
0 1 0
0 1 w
p’ = T(tx,ty) R(Θ) S(sx,sy) p
40. Matrix Composition
Matrices are a convenient and efficient way to
represent a sequence of transformations
• General purpose representation
• Hardware matrix multiply
p’ = (T * (R * (S*p) ) )
p’ = (T*R*S) * p
41. Matrix Composition
Be aware: order of transformations matters
– Matrix multiplication is not commutative
p’ = T * R * S * p
“Global” “Local”
42. Matrix Composition
What if we want to rotate and translate?
• Ex: Rotate line segment by 45 degrees about endpoint a
and lengthen
a a
43. Multiplication Order – Wrong Way
Our line is defined by two endpoints
• Applying a rotation of 45 degrees, R(45), affects both points
• We could try to translate both endpoints to return endpoint a to its
original position, but by how much?
a
a a
Wrong Correct
R(45) T(-3) R(45) T(3)
44. Multiplication Order - Correct
Isolate endpoint a from rotation effects a
• First translate line so a is at origin: T (-3)
a
• Then rotate line 45 degrees: R(45)
a
• Then translate back so a is where it was: T(3)
a
45. Matrix Composition
Will this sequence of operations work?
1 0 − 3 cos(45) − sin( 45) 0 1 0 3 a x a ' x
0 1 0 sin( 45) cos(45) 0 0 1 0 a = a'
y y
0 0 1 0
0 1 0 0 1 1 1
46. Matrix Composition
After correctly ordering the matrices
Multiply matrices together
What results is one matrix – store it (on stack)!
Multiply this matrix by the vector of each vertex
All vertices easily transformed with one matrix
multiply
47. Overview
2D Transformations
• Basic 2D transformations
• Matrix representation
• Matrix composition
3D Transformations
• Basic 3D transformations
• Same as 2D
48. 3D Transformations
Same idea as 2D transformations
• Homogeneous coordinates: (x,y,z,w)
• 4x4 transformation matrices
x' a b c d x
y' e f g h y
z' = i j k l z
w' m
n o p w
49. Basic 3D Transformations
x ' s x 0 0 0 x
x' 1 0 0 0 x y ' 0
y ' 0 1 0 0 y = sy 0 0 y
z ' = 0 0 1 0 z z' 0 0 sz 0 z
w 0
0 0 1w
w 0 0 0 1w
Identity Scale
x ' 1 0 0 t x x
y ' 0 x' −1 0 0 0 x
= 1 0 t y y
y ' 0 1 0 0 y
z ' 0 0 1 t z z z' = 0 0 1 0 z
w 0
0 0 1 w
w 0 0 0 1 w
Translation Mirror about Y/Z plane
50. Basic 3D Transformations
x' cos Θ − sin Θ 0 0 x
Rotate around Z axis: y ' sin Θ cos Θ 0 0 y
z ' = 0 0 1 0 z
w 0
0 0 1w
x ' cos Θ 0 sin Θ 0 x
y ' 0 1 0 0 y
Rotate around Y axis: =
z ' − sin Θ 0 cos Θ 0 z
w 0 0 0 1w
x' 1 0 0 0 x
Rotate around X axis: y ' 0 cos Θ − sin Θ 0 y
z ' = 0 sin Θ cos Θ 0 z
w 0
0 0 1w
51. Reverse Rotations
Q: How do you undo a rotation of θ, R(θ )?
A: Apply the inverse of the rotation… R-1(θ ) = R(-θ )
How to construct R-1(θ ) = R(-θ )
• Inside the rotation matrix: cos(θ) = cos(-θ)
– The cosine elements of the inverse rotation matrix are unchanged
• The sign of the sine elements will flip
Therefore… R-1(θ ) = R(-θ ) = RT(θ )
52. Summary
Coordinate systems
• World vs. modeling coordinates
2-D and 3-D transformations
• Trigonometry and geometry
• Matrix representations
• Linear vs. affine transformations
Matrix operations
• Matrix composition