geometric transformation. so far…. we have been discussing the basic elements of geometric...

Post on 27-Dec-2015

224 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Geometric Transformation

So far….

We have been discussing the basic elements of geometric programming. We have discussed points, vectors and theiroperations 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 transformationcalled affine transformations. Examples of affine transformationsare:

• translations• rotations• Uniform and non-uniform scaling• reflections (flipping objects about a line)• shearing ( which deform squares into parallelogram)

Affine Transformation (cont.)

Figure 1: Examples of affine transformation

Example

Figure 2: Transformation in 2-D and 3-D

Characteristics

These transformations all have a number of things in common.

1. They all map lines to lines ( parallel lines will still be parallelafter the transformations)

1. Translation, rotation and reflection preserve the lengths ofline segments and the angles between segments

3. Uniform scaling preserve angles but not length4. Non-uniform scaling and shearing do not preserve angles or

lengths

Usage

Transformations are useful in a number of situations:

1. We can compose a scene out a number of objects

Usage (cont.)

Usage (cont.)

2. Can design a single “motif” and manipulate the motif toproduce the whole shape of an object especially if the objecthas certain symmetries.

Example of snowflake after reflections, rotations and translationsof the motif

Usage (cont.)

3. To view an object from a different angle

Usage (cont.)

4. To produce animation

Affine Transformation

The two special types of affine transformation are

1. Rigid transformation: These transformations preserve bothangles and lengths (I.e. translations, rotations and reflections)

2. Orthogonal transformation: These transformations preserveangles 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 simpleoverall affine transformation in terms of a compact matrixrepresentation

Transformation Matrix (2-D)

For a point P that map to Q after affine transformation has a matrix representation as shown:

11001232221

131211

y

x

y

x

P

P

mmm

mmm

Q

Q

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 transformationhas the matrix representation as shown:

01000232221

131211

y

x

y

x

V

V

mmm

mmm

W

W

NB: the third row of the resultant matrix will always be 0for a vector

Transformation Matrix

The scalar m that we have in the transformation matrixwill 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. Basicallythe object that we define in our world will go through the sameProcedure.

Transformations

Transformations: changes in size, shape and orientation thatalter the coordinate descriptions of objects.

Usually, transformations are represented and calculated usingmatrices.

OpenGL also uses the same approach to perform transformations Lets look in detail at each of the transformations listed earlier..

Sine and Cosine

Sin = b/c if c = 1 then b = sin

Cos = a/c if c = 1 then c = cos

c

a

b

Recall our algebra lesson!!

Sine and Cosine (cont.)90

0180

270

y

x

z

-

Sine and Cosine (cont.)

Cos = x/z if z = 1 then cos = xSin = y/z if z = 1 then sin = y

Cos (- ) = x/z = cosSin (- ) = -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 ofmatrix A with m x p dimension and matrix B with p x n dimensionis:

mnm

ij

n

pnpjp

nj

mpm

ipi

p

cc

c

cc

bbb

bbb

aa

aa

aa

...

.....

..

.....

...

......

.........

.........

.........

......

...

.....

...

.....

...

1

111

1

1111

1

1

111

where

p

kkjikpjipjijiij babababac

12211 ...

Example

987

654

321

A

10

21

01

B

251

161

71

AB

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 matrixwhich reproduce that matrix is called identity matricesI.e:

1000

0100

0010

0001

100

010

001

10

011

1D 2D 3D 4D

Object Transformation vs Coordinate Transformation

Object Transformation: alters the coordinates of eachpoint on the object according to some rule. No change ofcoordinate system

Coordinate Transformation: defines a new coordinate system in terms of the old one and then represents all of the object’spoint in the new coordinate system

Translation

Reposition an object along a straight line path from onecoordinate location to another

2D point is translated by adding translation distances tothe x and y coordinates

When translating (x,y) to (x’,y’) by value tx’ = x + tx

y’ = y + ty

Translation (cont.)

The (tx,ty) is the translation distances called TRANSLATIONVECTOR

In matrix form

y

xP

'

''

y

xP

y

x

t

tT

Then point P’ = P + T

y

x

y

x

ty

tx

t

t

y

xP'

Translation (cont.)

For 2-D translation the transformation matrix T has the following form:

100

10

01

y

x

m

m

Where mx and my are the translation values in x and yaxis

T =

Translation (cont.)

For 3-D translation the transformation matrix T has the followingform:

1000

100

010

001

z

y

x

m

m

m

Where mx, my and mz are the translation values in x, y and z axis

T =

Translation (cont.)

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 specifiedPlane

Rotations are specified by:• a rotation angle• a rotation point (pivot point) at position (x,y)

Positive rotation angle means rotate counter-clockwisenegative rotation angle means rotate clockwise

Rotations (cont.)

(x,y)

(x’,y’)

r

r

The original point (x,y) can be represented in polarcoordinates form:

x = r cos (1) y = r sin (2)

Rotations (cont.)

The new point (x’,y’) can be expressed asx’ = r cos ( )y’ = r sin ( )

These equation can be written as

x’ = r cos cos - r sin siny’ = r cos sin + r sin cos

Rotations (cont.)

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

cossin

sincosR =

Rotations (cont.)

For 2-D rotation the transformation matrix R has the followingForm (in homogeneous coordinate system):

100

0cossin

0sincos

NB: for counter-clockwise rotation

Rotations (cont.)

In 3-D world, the rotation is more complex since we have toConsider rotation about three different axis; x, y and z axis.Therefore we have three different transformation matrices in3-D world.

1000

0100

00cossin

00sincos

Rz( ) =

Rotation about z-axis (ccw)

Rotations (cont.)

1000

0cossin0

0sincos0

0001

1000

0cos0sin

0010

0sin0cos

Rx( ) =

Ry( ) =

Rotation about y-axis (ccw)

Rotation about x-axis (ccw)

Rotations (cont.)

This rotation matrix is for case where the rotation is at theorigin.

For a rotation at any other points, we need to perform thefollowing transformations:

1. Translating the object so the rotation point is at the origin.2. Rotating the object around the origin3. 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 fixedpoint (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 refersas differential scaling

Scaling (cont.)

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 thefollowing form

100

00

00

y

x

S

S

S =

Scaling (cont.)

For 3-D scaling the transformation matrix S has the followingform:

1000

000

000

000

z

y

x

S

S

S

S =

top related