470 likes | 488 Views
Dive into the world of 2D transformations in computer graphics, exploring translate, rotate, and scale operations. Learn about world coordinates, viewport transforms, and putting it all together. Understand rigid body transformations and practice with examples to master the techniques. Explore how to specify each transformation, combine multiple transformations, and use homogeneous coordinates for complex models.
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