Title: CAP4730: Computational Structures in Computer Graphics
1CAP4730 Computational Structures in Computer
Graphics
2D Transformations
22D Transformations
- World Coordinates
- Translate
- Rotate
- Scale
- Viewport Transforms
- Putting it all together
3Transformations
- Rigid Body Transformations - transformations that
do not change the object. - Translate
- If you translate a rectangle, it is still a
rectangle - Scale
- If you scale a rectangle, it is still a rectangle
- Rotate
- If you rotate a rectangle, it is still a rectangle
4Vertices
- We have always represented vertices as (x,y)
- An alternate method is
- Example
5Matrix Vector
6Matrix Matrix
Does AB BA? What does the identity do?
7Practice
8Translation
- Translation - repositioning an object along a
straight-line path (the translation distances)
from one coordinate location to another.
(x,y)
(tx,ty)
(x,y)
9Translation
- Given
- We want
- Matrix form
10Translation Examples
- P(2,4), T(-1,14), P(?,?)
- P(8.6,-1), T(0.4,-0.2), P(?,?)
- P(0,0), T(1,0), P(?,?)
11Which one is it?
(x,y)
(tx,ty)
(tx,ty)
(x,y)
(x,y)
12Recall
- A point is a position specified with coordinate
values in some reference frame. - We usually label a point in this reference point
as the origin. - All points in the reference frame are given with
respect to the origin.
13Applying to Triangles
(tx,ty)
14What do we have here?
15Scale
- Scale - Alters the size of an object.
- Scales about a fixed point
(x,y)
(x,y)
16Scale
- Given
- We want
- Matrix form
17Non-Uniform/Differential Scalin
(x,y)
(x,y)
S(1,2)
18Rotation
- Rotation - repositions an object along a circular
path. - Rotation requires an ? and a pivot point
19Rotation
20Example
21What is the difference? Revisited
V(-0.6,0) V(0,-0.6) V(0.6,0.6) Translate
(1.2,0.3) V(0,0.6) V(0.3,0.9) V(0,1.2)
Translate (1.2,0.3) V(0.6,0.3) V(1.2,-0.3)
V(1.8,0.9) V(0,0.6) V(0.3,0.9) V(0,1.2)
22Rotations
V(-0.6,0) V(0,-0.6) V(0.6,0.6) Rotate -30
degrees V(0,0.6) V(0.3,0.9) V(0,1.2)
23Combining Transformations
Q How do we specify each transformation?
24Specifying 2D Transformations
- Translation
- T(tx, ty)
- Translation distances
- Scale
- S(sx,sy)
- Scale factors
- Rotation
- R(?)
- Rotation angle
25Combining Transformations
- Using translate, rotation, and scale, how do we
get
26Combining Transformations
- Note there are two ways to combine rotation and
translation. Why?
27Lets look at the equations
28Combining them
- We must do each step in turn. First we rotate
the points, then we translate, etc. - Since we can represent the transformations by
matrices, why dont we just combine them?
292x2 -gt 3x3 Matrices
- We can combine transformations by expanding from
2x2 to 3x3 matrices.
30Homogenous Coordinates
- We need to do something to the vertices
- By increasing the dimensionality of the problem
we can transform the addition component of
Translation into multiplication.
31Homogenous Coordinates
- Homogenous Coordinates - term used in mathematics
to refer to the effect of this representation on
Cartesian equations. Converting a pt(x,y) and
f(x,y)0 -gt (xh,yh,h) then in homogenous
equations mean (vxh,vyh,vh) can be factored
out. - What you should get By expressing the
transformations with homogenous equations and
coordinates, all transformations can be expressed
as matrix multiplications.
32Final Transformations - Compare Equations
33Combining Transformations
34How would we get
35How would we get
36Coordinate Systems
- Object Coordinates
- World Coordinates
- Eye Coordinates
37Object Coordinates
38World Coordinates
39Screen Coordinates
40Coordinate Hierarchy
41Lets reexamine assignment 2b
42Transformation Hierarchies
43Transformation Hierarchies
44Transformation Hierarchies
45Transformation Hierarchies
46Transformation Hierarchies
- We can have transformations be in relation to
each other
47More Complex Models