CAP4730: Computational Structures in Computer Graphics 2D Transformations
2D Transformations World Coordinates Translate Rotate Scale Viewport Transforms Putting it all together
Transformations 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
Vertices We have always represented vertices as (x,y) An alternate method is: Example:
Matrix * Vector
Matrix * Matrix Does A*B = B*A? What does the identity do?
Practice
Translation Translation - repositioning an object along a straight-line path (the translation distances) from one coordinate location to another. (x’,y’) (tx,ty) (x,y)
Translation Given: We want: Matrix form:
Translation Examples P=(2,4), T=(-1,14), P’=(?,?)
Which one is it? (x’,y’) (tx,ty) (tx,ty) (x,y) (x,y)
Recall 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.
Applying to Triangles (tx,ty)
What do we have here? You know how to:
Scale Scale - Alters the size of an object. Scales about a fixed point (x’,y’) (x,y)
Scale Given: We want: Matrix form:
Non-Uniform/Differential Scalin’ (x’,y’) (x,y) S=(1,2)
Rotation Rotation - repositions an object along a circular path. Rotation requires an and a pivot point
Rotation
Example P=(4,4) =45 degrees
What 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)
Rotations V(-0.6,0) V(0,-0.6) V(0.6,0.6) Rotate -30 degrees
Combining Transformations Q: How do we specify each transformation?
Specifying 2D Transformations Translation T(tx, ty) Translation distances Scale S(sx,sy) Scale factors Rotation R() Rotation angle
Combining Transformations Using translate, rotation, and scale, how do we get:
Combining Transformations Note there are two ways to combine rotation and translation. Why?
Let’s look at the equations
Combining 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 don’t we just combine them?
2x2 -> 3x3 Matrices We can combine transformations by expanding from 2x2 to 3x3 matrices.
Homogenous 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.
Homogenous 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 -> (xh,yh,h) then in homogenous equations mean (v*xh,v*yh,v*h) 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.
Final Transformations - Compare Equations
Combining Transformations
How would we get:
How would we get:
Coordinate Systems Object Coordinates World Coordinates Eye Coordinates
Object Coordinates
World Coordinates
Screen Coordinates
Coordinate Hierarchy
Let’s reexamine assignment 2b
Transformation Hierarchies For example:
Transformation Hierarchies Let’s examine:
Transformation Hierarchies What is a better way?
Transformation Hierarchies What is a better way?
Transformation Hierarchies We can have transformations be in relation to each other
More Complex Models