470 likes | 487 Views
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
E N D
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 * Matrix Does A*B = B*A? What does the identity do?
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’=(?,?) • P=(8.6,-1), T=(0.4,-0.2), P’=(?,?) • P=(0,0), T=(1,0), 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
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 V(0,0.6) V(0.3,0.9) V(0,1.2)
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?
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.
Coordinate Systems • Object Coordinates • World Coordinates • Eye Coordinates
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