principles of computer-aided design and manufacturing second edition 2004 isbn 0-13-064631-8 author:...

Post on 02-Apr-2015

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Principles of Computer-Aided Design and Manufacturing

Second Edition 2004

ISBN 0-13-064631-8

Author: Prof. Farid. Amirouche

University of Illinois-Chicago

University of Illinois-Chicago

Chapter 3

Transformation and Manipulation of Objects

3.1 Introduction

Motorcycle Engine Design

3D Detailed Building Layouts

Automobile Body Display

An Auxiliary View of a Building

3.2 Transformation Matrix

oldnew CRC .

3.3 2D Transformation

oldnewy

x

RR

RR

y

x

2221

1211

1211 RyRxx oldoldnew

2221 RyRxy oldoldnew

oldnewy

xa

y

x

1

1

y

x

sh

shR

Where

= Shear along x-direction.= Shear along y-direction xsh

ysh

3.4 Arbitrary Rotation about the Origin

Counterclockwise rotation of x and y to obtain and

x y

cossin

sincos

121

111

yxy

yxx

1

1

'1

'1

cossin

sincos

y

x

y

x

cossin

sincosR

Where

is the rotation matrix.

x1

3.5 Rotation by Different Angles

y

x

y

x

11

22

12 cossin

sincos

)cos(

1

'

'

Arbitrary rotation of axes x and y

3.6 Concatenation oldrsnew CRRC

rsRRR

3.7 2D Translation xxx oldnew yyy oldnew

y

x

y

x

y

x

old

old

new

new

100

ydc

xbaR=

R=

100

10

01

y

x

111100

10

01

111321

321

321

321

yyyyyy

xxxxxx

y

x

yyy

xxx

Reverse the order of the 2 matrices

3.8 Projection onto a 2D Plane

R1 =

1 0

0 1

0 0 1

p

q

1 qypxH

X*=x, y*=y

x

H

y

H

*,

*, 1

where

3.9 Overall Scaling CRC .*

s00

010

001

R=

=

ns

1

scaledesiredtheofvalue

1.

1

**

s

y

s

x

(0,0) X

Y

P

X

Y

P1

An example for overall scaling of an 2D object

100

00

00

s

s

3.10 Rotation about an Arbitrary Point • Example

Rotation of an Object about an Arbitrary Point in 2D

Let C describe an object or configuration of some geometry, where C is an array of data-point coordinates.

(0,0) X

Y

Pn

m

a b

cd

a'

b'

c'

d'

Solution:

*

100

10

01

100

0cossin

0sincos

100

10

01

CCn

m

n

m

]][[* CRC

100

)1(cossincossin

sin)1(cossincos

nm

nm[R] =

Rotation about arbitrary point.

+ --

Example

Uniform Scaling in 2D

Find the transformation matrix that would produce rotation of the geometry about point A, s shown in Figure 3.11(a), followed by a uniform scaling of the geometry down to

half its original size.

Solution: Step 1: Place the points into a matrix.

Step 2: Translate point A to the origin, that is, -2- along the x-axis and -10 along the y Axis, as shown in Figure 3.11(b).Step 3: Rotate the object 30 degrees about the z-axis, as shown is Figure 3.12(c).Step 4: Translate point A to its original position as shown in Figure 3.12(d).

Step 5: Scale the object to half its original size, as shown is

Figure 3.13(e).

(4,3)

Point O

(0,5) (3,5)

Y

(15,0)

(a)

(11,3)

X

(15,5)(12,5)

Point A

(b)

Y

XPoint A

First step

(c)

Y

XPoint A

Y

(d)

X

Point A

Step 2 and 3

(e)

Y

X

Point A

Final step

3.11 2D Reflection

000

010

001

R= (0,0)

Y

X

Reflection about y-axis

100

010

001

R=

Y

(0,0) X

Reflection about x-axis

Reflection about any arbitrary Point

100

10

01

n

m

T=

100

010

001

R=

T1=

100

10

01

n

m

Reflection about arbitrary point

Reflection about arbitrary axis:

10

010

001

c

T1=

a) Coordinate transformation to move the line so it passes through o.

b) Rotation to make the x-axis align with the given line

100

0)cos()sin(

0)sin()cos(

T2=

100

10

001

c

c) Reflection about the x-axis 

R= 

d) Rotation back by an angle  

T3=

 

The concatenated matrix expressing the above steps is defined by  

100

010

001

100

0)cos()sin(

0)sin()cos(

oldnew CTTRTC 12.3 .

(0,0)

Y

X

Reflection about an arbitrary axis y=mx+c

y=mx+c

(0,0)

Y

X

Reflection of the object

 3.12 3D TRANSFORMATION

A trailer with a lower-attachment An energy-fuel vehicle

3.13 3D Scaling  

(a) Local Scaling: 

 (b) Overall Scaling : Overall scaling can be achieved by the following transformation matrix where the final coordinates need to be normalized  

 

1000

000

000

000

c

b

a

R

s

R

000

0100

0010

0001

x

s

y

s

z

s

* * *1

ns

1

scale desired theof value

1where

1000

000

000

000

n

n

n

R

Overall scaling

*CCRs

11111111

10101010

11110000

22002200

C =

R =

1 0 0 0

0 2 0 0

0 0 1 0

0 0 0 1

RCC *

Then

Let

Figure 3.21 Application of zooming effect in computer graphics

3D Scaling

3.14 3D Rotation of objects

1000

0

033

0

MatrixR

Rx

1 0 0

0

0

cos sin

sin cos

'xx

sincos' zyy

sin'cos' yzz Rotation about x-axis

z

y

x

z

y

x

cossin0

sincos0

001

'

'

'

R-1 = = RT

cossin0

sincos0

001

'

'

'

cossin0

sincos0

001

z

y

x

z

y

x

'

'

'

z

y

x

R

z

y

x

xOr

cos sin

sin cos

0

0 1 0

0

Ry =

Rotation about y-axis

Rz =

cos sin

sin cos

0

0

0 0 1

Rotation about z-axis

Example 3.5: Rotation in 3D Space

• The box shown in Figure 3.26(A) will demonstrate rotation about an axis in 3D space. The box shown in the figure is at the initial starting point for all three rotations. The labeled points of the box listed in matrix format (see Sec. 3.3) are used with the transformation rotation matrices, equations (3.37), (3.39), and (3.40), to obtain the new coordinates after rotation (rotations are in a counterclockwise direction in this example)

Solution:

z

y

x

GFEDCBAC

[C]=

11100010

10001110

20222000

Rotation about the x Axis:

][][][ * CRC

Rotation about x-axis for 30 degrees.

[C*]=

11100010

10001110

20222000

2

32

10

2

1

2

30

001

=

2

1

2

3

2

3

2

30

2

1

2

1

2

3

2

10

2

1

2

32

1

2

10

2

3

2

3

2

1

2

30

20222000

Rotation about the y Axis: CRC y*

Rotation about y-axis for 30 degrees

[C*]=

=

11100010

10001110

20222000

2

30

2

1

010

2

10

2

3

2

31

2

3

2

31

110

2

30

10001110

2

13

0332

13

2

1

2

10

Rotation about the z Axis: CRC z*

[C*] =

11100010

10001110

20222000

100

02

3

2

1

02

1

2

3

=

Rotation about z-axis for 30 degrees

11100010

2

31

011

2

31

2

3

2

30

2

13

0332

13

2

1

2

10

3.15 3D Reflection and mirror imaging

An example for symmetry

1000

0100

0010

0001

rR

1000

0100

0010

0001

rR

1000

0100

0010

0001

rR

Reflection about the x-y plane is given:

Reflection about the y-z plane is given:

Reflection about the x-z plane is given:

Example : Building of a Block

• Symmetry is the similarity between two objects with respect to a point or a line or a plane. Dimensions of the object with measured from the symmetric plane will be equal for both the object. One object look similar to the mirror image of the other assuming that the central plane acts as a mirror. This concept of symmetry and mirroring are widely used in design and modeling field to reduce model creation time. Use reflection to simplify the creation of the block shown in

Coordinate description using a quarter portion of the block.

Solution: nmlkjihgfedcbaC 1

111111111111112

1

2

111

2

100

2

1110011

11112

1

2

1

2

1

2

1

2

1

2

10000

4

1

2

1

2

1

4

1

4

10

2

1

2

1

4

100

2

1

2

10

Step 1: Establish the transformation matrix to reflect the quarter block about the x-y plane

[C*] = CR1 = C

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

=

Half block obtained by reflection about the xy plane

111111111111112

1

2

111

2

100

2

1110011

11112

1

2

1

2

1

2

1

2

1

2

10000

4

1

2

1

2

1

4

1

4

10

2

1

2

1

4

100

2

1

2

10

*C

Step 2: Reflect the half portion of the block about the y-z plane

Reflection of half portion of the block about yz plane.

CCRC a

1000

0100

0010

0001

2**

*C

CCa

111111111111112

1

2

111

2

100

2

1110011

11112

1

2

1

2

1

2

1

2

1

2

10000

4

1

2

1

2

1

4

1

4

10

2

1

2

1

4

100

2

1

2

10

][ **

cC

111111111111112

1

2

111

2

100

2

1110011

11112

1

2

1

2

1

2

1

2

1

2

10000

4

1

2

1

2

1

4

1

4

10

2

1

2

1

4

100

2

1

2

10

][ **

*cC

CC

C

C

C

****

***

3.16 3D TRANSLATION

xxx 'yyy '

zzz '

RT =

1000

100

010

001

z

y

x

RCC *

Example : Translation of a Block in 3D

Using the same box of Figure in Example 3.5, translate the box 2 units in the x direction, 1 unit in the y direction, and 1 unit in the z direction. 

1111111

1100020

0001110

0222000

1000

1100

1010

2001

*C

1111111

2211131

1112221

2444222

*C

Using previous equation, we substitute the numerical values into the translation matrix and apply equation to find the new coordinates of the points after translation. We know x=2, y=1, and z=1. The new coordinates of the box are

Solution:

RCC *

3.17 3D ROTATION ABOUT AN ARBITRARY AXIS

Transformation matrix could be achieved through a procedure as described below:

 

1. The object is translated such that the origin of coordinates passes through the line

2. Rotation is accomplished

3. The object is translated back to its origin

Rotation about an arbitrary axis can be classified into 3 types • 1) Axis of rotation parallel to any one of the coordinate

axes.

Rotation about a parallel axis Translation of axis to coordinate axis

2. Axis passing through origin and not parallel with any

coordinate axis.

Rotation about an axis passing through origin

3. Arbitrary line not passing through the origin and not

parallel to any of the coordinate axis.

Rotation about an axis not passing through origin

If we concatenate the three foregoing transformation matrices, we obtain:

CRRRC trt 21*

1000

100

010

001

1 z

y

x

Rt

1000

100

010

001

2 z

y

x

Rt

1000

0

0

0

21212

321313213132

321313213132

CCCSS

SSCCSSSSCCSC

CSCSSCSSSCCC

Rr 

,cos2 C ,cos3 C

,sin1 S ,sin2 S .sin3 Swhere

where

,cos1 C

zyxr RRRR

Successive rotation of x, y, z by , , .

Example : Rotation of a Box in 3D Space

Using the box of Figure in Example 3.5, find the new coordinates of the box if it is rotated 30 degrees about the x-axis, 60 degrees about the y-axis, and 90 degrees about the z-axis. (Rotations are in the counterclockwise direction.) The rotations of the coordinate reference frames are illustrated in Figure 3.21. x’’’, y’’’, and z’’’ indicate the new coordinate system where the box resides [C*].

Solution:

RCC *

11111111

11001100

10010110

22220000

Cwhere

And substituting =30, =60, and =90

1000

04

3

4

1

2

3

04

3

4

3

2

1

02

1

2

30

R

The final answer is

11111111

11001100

10010110

22220000

1000

04

3

4

1

2

3

04

3

4

3

2

1

02

1

2

30

*C

10000000

4

35

4

1

4

3334

13

4

3

4

33

4

14

10

4

3

4

14

11

4

31

4

3

4

3

4

3

4

30

2

3

2

12

10

2

32

1

2

3

2

1

2

30

*C

Example : Rotation and Translation of a Cube in 3D Space

Initial position of the cube

Given the unit cube shown as follows, find the transformation matrix required for the display of the cube

Step1: Place the points in matrix form.

11111111

00110011

00001111

01100110

C

Rotation about x-axis

Step 2: Rotate the cube +90 degrees about the x-axis

1000

090cos90sin0

090sin90cos0

0001

1sR

Rotation about y-axis 1

Step 3: Rotate the cube +90 degrees about the y-axis

1010

090cos090sin

0010

090sin090cos

2sR

CRRC ss 21*

11111111

11110000

01100110

00110011

*C

The final answer is

By combining the transformation matrices, we have

Example : Pyramid Rotation and Translation Give the concatenated transformation matrix that would generate the new position of the object shown in Figure 3.41. (Face A given by points ABCD lies in the x-z plane with its center along

the x-axis.)

Initial position of the pyramid

Solution: Step1: Determine the matrix to rotate the pyramid along the x-axis by 90 degrees

1000

090cos90sin0

090sin90cos0

0001

1R

Rotation about the x-axis for 90 degrees

Step 2: Determine the matrix to translate the object –h units along the x-axis

1000

0100

0010

001

2

h

R

Translation along the x-axis for –h units

Step 3: Rotate the object 90 degrees about the z-axis

Rotation about the z-axis for 90 degrees

1000

0100

0090cos90sin

0090sin90cos

3R

CRRRC 321*

3.18 3D VISUALIZATION

3.19 TRIMETRIC PROJECTION

RCC *

1000

0000

0010

0001

1000

0

0

033

matrix

RotationR

(For z=0)

100

0000

0010

0001

1000

0

0

033

t

matrix

RotationR

If we were to project the object onto x=0 or x=r plane, the projection matrix takes the following form:

1000

0100

0010

0000

R

1000

0100

0010

000 r

R (For x=r) (For x=0)

In a similar fashion, the projection onto the y=0 or y=s plane is

1000

0100

0000

0001

R (For y=0)

1000

0100

000

0001

sR (For y=s)

Consider the following transformation :

1 0 0 0

0 1 0 0

0 0 1 0

1 1 1

x x

y y

z z

p q r px qy rz

1 0px qy rz defines the equation of a plane

In the case where q = 0 and p = 0, the equation becomes rx +1 = 0 and the distance from the origin is D = 1/ r. Therefore for a projection onto a plane defined by as x = a, the projection matrix is

00 0 0 0

0 1 0 0*

0 0 1 0

1/ 0 0 1 1 1

xy

yR C z

zx

aa

The equation of the plane x=a can also be written as 1 0x

a

In order to normalize the representation of C matrix and have the last element equal to 1 we need to substitute the above ( 0 y z -x/r+1) by moving the geometry such that all coordinates have x=r and y and z are kept unchanged. Therefore,

1

new

x r

yC

z

Example : Projection on a Plane Determine the projection of box in (a) x=6, (b) y=6, and (c) z=6.

Solution:

GFEDCBAC

11111111

11001100

10010110

22220000

C

 (a) The projection of the box on x=6 plane (see Figure 3.46) has the following transformation matrix:

1006

0100

0010

6000

R CRC *

11111111

11001110

10010110

22220000

1000

0100

0010

6000

*C

11111111

11001020

10010110

66666666

*C

(b) The projection of the box on the y=6 plane has the following transformation matrix:

1000

0100

6000

0001

R

11111111

11001100

10010110

22220000

1000

0100

6000

0001

*C

11111111

11001120

66666666

22220000

*C

Therefore, the coordinates for the projection are

(c) The projection of the box on the z=6 plane has the following

transformation matrix:

Projection on the plane z=6

1000

6000

0010

0001

R

CRC *

11111111

11001100

10010110

22220000

1000

6000

0010

0001

*C

11111111

66666666

10010110

22220000

*C

Therefore, the coordinates for the projection are

3.20 ISOMETRIC PROJECTION

Combined rotations followed by projection from infinity form the bases for generating all axonometric projections. We perform the following: 

1. Rotate about the y-axis2. Rotate about the x-axis3. Project about the z=0 plane4. Apply the final transformation conditions of foreshortening all axes

equally5. Get the final transformation matrix to yield the isometric view

Isometric view

11000

0cos0sin

0010

0sin0cos

1000

0cossin0

0sincos0

0001

1

*

*

*

z

y

x

z

y

x

1000

0coscossincossin

0sincos0

0cossinsinsincos

R

Consider a point P given by (x y z 1). Let us find the isometric projection of this point while using the previous definitions. Operating on P by and , we get

where [x* y* z*] represents the coordinates of the rotated point P about the y and x axes. The concatenated transformation matrix is given by

1

0

1

0

1

*

*

*

Rz

y

x

Suppose point P denotes different unit vectors along the x, y, and z-axes. Hence alone x, we have [1 0 0 1],

1

0

0

1

1

*

*

*

Rz

y

x cos* x

sinsin* y

cossin* z

where

If we consider the unit vector along the y-axis, it transforms into

0* x

cos* y

sin* z

where

2222*2*2* sinsincos zyxnx

22*2*2* cos zyxny

2222*2*2* sincossin zyxnx

2

22

sin1

sinsin

yx nn

2

22

sin1

sin21sin

zy nn

and then

Using trigonometric relationships and the method of substitution, we can solve for and which yield =35.26, =45. We can then conclude that given geometry in 3D represented by [C}, its isometric projection is obtained by premultiplying it by R with and being 35.26 and 45 respectively. The resulting [C*] represents the projection for which we are looking.

top related