Upload
nicolas-bayliss
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
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.