660 likes | 868 Views
CGMB214: Introduction to Computer Graphics. Topic 6: Geometric Transformation. Objectives. To provide an understanding on the geometric transformation. So far….
E N D
CGMB214: Introduction to Computer Graphics Topic 6: Geometric Transformation
Objectives To provide an understanding on the geometric transformation
So far…. We have been discussing the basic elements of geometric programming. We have discussed points, vectors and their operations and coordinate frames and how to change the representation of points and vectors from one frame to another. Next topic involves how to map points from one place to another (transformation).
Affine Transformation • In this topic, we will concentrate on one particular transformation called affine transformations. Examples of affine transformations are: • translations • Rotations • Uniform and non-uniform scaling • reflections (flipping objects about a line) • shearing ( which deform squares into parallelogram)
Affine Transformation Examples of affine transformation
Affine Transformation Transformation in 2-D and 3-D
Affine Transformation-Characteristics • These transformations all have a number of things in common. • They all map lines to lines ( parallel lines will still be parallel after the transformations) • Translation, rotation and reflection preserve the lengths of line segments and the angles between segments • Uniform scaling preserve angles but not length • Non-uniform scaling and shearing do not preserve angles or lengths
Affine Transformation-Usage Transformations are useful in a number of situations: 1. We can compose a scene out a number of objects
Affine Transformation-Usage 2. Can design a single “motif” and manipulate the motif to produce the whole shape of an object especially if the object has certain symmetries. Example of snowflake after reflections, rotations and translations of the motif
Affine Transformation-Usage 3. To view an object from a different angle
Affine Transformation-Usage 4. To produce animation
Affine Transformation • The two special types of affine transformation are • Rigid transformation: These transformations preserve both angles and lengths (I.e. translations, rotations and reflections) • 2. Orthogonal transformation: These transformations preserve angles but not necessarily length.
Affine Transformation -why? The most common transformations used in computer graphics. They simplify operations to scale, rotate and reposition objects. Several affine transformations can be combined into a simple overall affine transformation in terms of a compact matrix representation
Transformation Matrix (2-D) For a point P that map to Q after affine transformation has a matrix representation as shown: NB: the third of the resultant matrix will always be 1 for a point
Transformation Matrix (2-D) For a vector V that maps to W after affine transformation has the matrix representation as shown: NB: the third row of the resultant matrix will always be 0 for a vector
Transformation Matrix The scalar m that we have in the transformation matrix will determine which affine transformation that we want to perform.
OpenGL graphics pipeline Normally in OpenGL, many transformation processes occur before the final objects are displayed on the screen. Basically the object that we define in our world will go through the same procedure.
Transformations Transformations: changes in size, shape and orientation that alter the coordinate descriptions of objects. Usually, transformations are represented and calculated using matrices. OpenGL also uses the same approach to perform transformations
Sine and Cosine Recall our algebra lesson!! c b a Sin = b/c if c = 1 then b = sin Cos = a/c if c = 1 then c = cos
Sine and Cosine (cont.) 90 z y 180 0 x - 270
Sine and Cosine (cont.) Cos = x/z if z = 1 then cos = x Sin = y/z if z = 1 then sin = y Cos (- ) = x/z = cos Sin (- ) = -y/z = -sin Cos ( ) = cos cos - sin sin Sin ( ) = sin cos + cos sin
Matrices In graphics most of the time matrix operation that we will deal with is matrix multiplication. The formula for multiplication of matrix A with m x p dimension and matrix B with p x ndimension is: where
Characteristics of Matrix Multiplication of matrices is not commutative AB != BA Multiplication of several matrices is associative A(BC) = (AB)C
Identity Matrix Set of matrices that when they multiply another matrix which reproduce that matrix is called identity matrices i.e: 1D 2D 3D 4D
Object Transformation vsCoordinate Transformation Object Transformation: alters the coordinates of each point on the object according to some rule. No change of coordinate system Coordinate Transformation: defines a new coordinate system in terms of the old one and then represents all of the object’s point in the new coordinate system
Translation • Reposition an object along a straight line path from one coordinate location to another • 2D point is translated by adding translation distances to the x and y coordinates • When translating (x,y) to (x’,y’) by value t • x’ = x + tx • y’ = y + ty
Translation The (tx,ty) is the translation distances called TRANSLATION VECTOR In matrix form Then point P’ = P + T
Translation For 2-D translation the transformation matrix T has the following form: T = Where mxand my are the translation values in x and y axis
Translation (cont.) For 3-D translation the transformation matrix T has the following form: T = Where mx, myand mz are the translation values in x, y and z axis
Translation • Translation is a rigid body transformation • the object is not being deformed • all points are moved in the same distance • How to translate? • Straight lines – based on end points • Polygons - based on vertices • Circles - based on centre
Rotations • Reposition an object along a circular path in a specified plane • Rotations are specified by: • a rotation angle • a rotation point (pivot point) at position (x,y) • Positive rotation angle means rotate counter-clockwise negative rotation angle means rotate clockwise
Rotations (x’,y’) r (x,y) r The original point (x,y) can be represented in polar coordinates form: x = r cos (1) y = r sin (2)
Rotations • The new point (x’,y’) can be expressed as • x’ = r cos ( ) • y’ = r sin ( ) • These equation can be written as • x’ = r coscos - r sin sin • y’ = r cos sin + r sin cos
Rotations • Substituting the equations with equation (1) and (2), we get • x’ = x cos - y sin • y’ = x sin + y cos • Therefore, the rotation matrix R can be expressed as R =
Rotations For 2-D rotation the transformation matrix R has the following form (in homogeneous coordinate system): NB: for counter-clockwise rotation
Rotations In 3-D world, the rotation is more complex since we have to consider rotation about three different axis; x, y and z axis. Therefore we have three different transformation matrices in 3-D world. Rz( ) = Rotation about z-axis (ccw)
Rotations Rx( ) = Rotation about x-axis (ccw) Ry( ) = Rotation about y-axis (ccw)
Rotations • This rotation matrix is for case where the rotation is at the origin. • For a rotation at any other points, we need to perform the following transformations: • Translating the object so the rotation point is at the origin. • Rotating the object around the origin • Translating the object back to its original position • Recall that rotation is a rigid affine transformation
Scaling Scaling changes the size of an object Scaling can also reposition the object but not always Uniform scaling is performed relative to some central fixed point (I.e at the origin). The scaling value (scale factor) for uniform scaling must be both equal. Non-uniform scaling has different scaling factors. Also refers as differential scaling
Scaling • The value of the scale factors (Sx, Sy, Sz) determine the size of the scaled object. • if equal to 1 -> no changes • if greater than 1 -> increase in size (magnification) • if 0 < scale factors < 1 -> decrease in size • (demagnification) • if negative value -> reflection !!!
Scaling (cont.) For 2-D scaling the transformation matrix S will have the following form S =
Scaling For 3-D scaling the transformation matrix S has the following form: S =
Reflection Reflection produces a mirror image of an object It is also a rigid body transformation Reflection is relative the axis of the reflection. In 2D,the axis are either x and y whereas 3-D includes z axis. Reflection is actually a special case of scaling (with the negative scale factor)
Reflection For 2-D reflection, the transformation matrix F has the following form F(y) = F(x) = About x-axis about y-axis
Reflection For 3-D reflection, the transformation matrix F has the following form F(z) = Reflection about z-axis
Reflection Reflection can be generalized by concatenating rotation and reflection matrices. Example: If reflection at y=x axis (45 degree), the transformations involved are: Clockwise rotation of 45 degree Reflection about x axis Counter clockwise rotation of 45 degree
Shearing Distort an object by moving one side relative to another It neither rigid body nor orthogonal transformation. i.e. changing a square into parallelogram in 2-D or cube into parallelepiped in 3-D space It is normally used to display italic text using regular ones
Shearing For 2-D shearing transformation the transformation matrix has the following form X direction y direction