Last updated: Yeh-Liang Hsu (2010-09-20).
Note: This is the course material for “ME550 Geometric modeling and
computer graphics,” Yuan Ze University. Part of this material is adapted from CAD/CAM
Theory and Practice, by Ibrahim Zeid, McGraw-Hill, 1991. This material is
be used strictly for teaching and learning of this course.
Projection of geometric models
Many graphics applications involve sequences of geometric
transformations. An animation, for example,
might require an object to be translated and rotated at each increment of the
motion. Here we consider how the matrix representations can be reformulated so
that such transformation sequences can be efficiently processed.
scaling, mirroring, and rotation of a point P are represented by the
following equations respectively:
While the last
three equations are in the form of matrix multiplication, translation takes the
form of vector addition. This makes it inconvenient to concatenate
transformations involving translation. It is desirable, therefore, to express
all geometric transformations in the form of matrix multiplications only. Representing points by their
homogeneous coordinates provides an effective way to unify the description of
geometric transformations as matrix multiplications.
three-dimensional space, a point P with Cartesian coordinates (x, y, z) has the
homogeneous coordinates (x*, y*, z*, h), where h
is any scalar factor ≠0. The two types of coordinates are related to each other by the
For example, (1, 2, 3, 1) and (2, 4, 6, 2) are the same point.
then be represented by matrix multiplication using homogeneous coordinates.
transformation matrices in Equation (2), (3), (4) become
positions in homogeneous coordinates allows us to represent all geometric
transformation equations as matrix multiplications. For example,
or in a general form,
The 3×3 submatrix [T1]
produces scaling, reflection, or rotation. The 3×1 column matrix [T2]
generates translation. The 1×3 row matrix [T3] produces perspective projection,
which will be discussed later.
Create a rectangle in x-y plane in your CAD
software; specify the coordinates of the 4 corner points. Assume some parameters
and apply the following two-dimensional transformations, translation, rotation,
translation, to the object in your CAD software. Draw the object after these
Use homogenous coordinates to represent the key points of
the object you generated. Write a program in Matlab and concatenate the 3
transformations into one transformation matrix as shown in Equation (11)~(15).
Calculate the positions of the key points using this transformation matrix.
Regenerate the object by connecting the key points after transformation. Does
the object match the object you drew in your CAD software? ◇
Use two-dimensional rotation matrices to show that rotation
is not commutative, that is,
coordinates was introduced by August Ferdinand Möbius in 1827. They have the
advantage that the coordinates of a point, even those at infinity, can be
represented using finite coordinates. Often formulas involving homogeneous
coordinates are simpler and more symmetric than their Cartesian counterparts.
Homogeneous coordinates have a range of applications, including computer
graphics and 3D computer vision, where they allow affine transformations and,
in general, projective transformations to be easily represented by a matrix.
Projections of geometric models
2.1 Perspective projection and parallel projection
three-dimensional model is a rather complex process due to the fact that
display devices can only display graphics on two-dimensional screens. To define
a projection, a center of projection and a projection plane must be defined.
There are two
different types of projections based on the location of the center of
projection (or projection reference point) relative to the projection plane, as
shown in Figure 1. If the
center is at a finite distance from the plane, perspective projection results and
all the projectors meet at the center. If, on
the other hand, the center is at an infinite
distance, all the projectors become parallel (meet at infinity) and parallel
Figure 1. Types of projections
Perspective projection does not preserve parallelism, that is, no two lines are parallel. Perspective projection creates
an artistic effect that adds some realism to perspective views. Size of an entity is inversely
proportional to its distance from the center of projection; that is, the closer the entity to the center, the larger its size
projection preserves actual dimensions and shapes of objects. It also preserves
parallelism. Angles are preserved only on faces of the object that are parallel
to the projection plane.
Does your CAD software support perspective projection? If
so, build a 3D object to demonstrate the difference between perspective
projection and parallel projection. In your CAD software, how do you modify the
parameters to change the viewpoint of the perspective projection? ◇
There are two
types of parallel projections based on the relation between the direction of
projection and the projection plane. If this direction is normal to the
projection plane, orthographic
projection and views result. If the direction is
not normal to the plane, oblique projection occurs.
There are two
types of orthographic projections. The most common type is the one that uses
projection planes that are perpendicular to the principal axes of the MCS of
the model; that is, the direction of projection coincides with one of these
axes. The multi-view projection -- front,
top, and right views that are used customarily
in engineering drawings belong to this type.
The other type
of orthographic projection uses projection planes that are not normal to a principal
axis and therefore show several faces of a model at once. This type is called axonometric projections. They
preserve parallelism of lines but not angles.
Axonometric projections are further divided into trimetric, dimetric and isometric projections. The isometric projection is the most common axonometric projection.
The isometric projection has the
useful property that all three principal axes are equally foreshortened. Therefore measurements along the axes can be made with the same
name: “iso” for equal, metric for measure. In addition, the normal to the
projection plane makes equal angles with each principal axis and the principal
axes make equal angles (120° each) with one another when projected onto the
The oblique projection places the principal face of the
object parallel to the plane of the paper, and
is often used in freehand sketching. The advantage is that details on the front
face of the object retain their true shape. The disadvantage is that oblique
projection does not appear realistic.
Draw a “family tree” for the types of projections discussed
above. Use your CAD software to generate all projections in the family tree
using the 3D object in Assignment 3. ◇
2.2 Mappings of geometric models to the viewing coordinate
Mapping of a
point (or a set of points) belonging to an object from one coordinate system to
another is defined as changing the description of the point (or the set of
points) from the first coordinate system to the second one. This is equivalent
to transforming one coordinate system to another.
coordinates of a point P measured in a given xyz coordinate
system, find the coordinates P* of the point measured in another
coordinate system, say x*y*z* such that
transformation parameters) (17)
parameters describe the relationship between the two systems and consist of the
position of the origin and orientation of the x*y*z* system relative to
the xyz system.
where [R] and d are the rotational and translational
mapping parts of [T] respectively.
Equation (18) gives the position vector of the origin of the xyz system
as d and its orientation as [R] both measured in the x*y*z*
system. The columns of [R] are the components of the unit vectors of the
xyz system (along its axes) measured in the x*y*z* system.
A view has a viewing coordinate system (VCS). It is a three-dimensional system with the Xv
axis horizontal pointing to the right and the Yv axis
vertical pointing upward, as shown in Figure 2. The Zv axis
defines the viewing direction. The positive Zv axis has an
opposite sense to the viewing direction to keep the VCS a right-handed
coordinated system, even though a left-handed system may be more desirable here
since its positive Zv axis is in the direction of the lines
of sight emitting from the viewing eye.
Figure 2. View definition.
To obtain views
of a model, the viewing plane, the Xv Yv plane, is
made coincident with the x-y plane of the MCS such that the VCS origin
is the same as that of the MCS. Model views now become a matter of rotating the
model with respect to the VCS axes until the desired model plane coincides with
the viewing plane followed by projecting the model onto that plane. Thus, a view of a model is generated in
two steps: rotate the model properly and then project it.
2.3 Orthographic projections
Figure 3 shows
the relationship between MCS and VCS. An orthographic projection (view) of a
model is obtained by setting to zero the coordinate value corresponding to the
MCS axis that coincides with the direction of projection (or viewing) after the
model rotation. To obtain the front view, we only
(no rotation is needed) need to set z = 0 for all the key points of the model. Thus, Equation (18) becomes
where Pv is the point expressed in the VCS.
For the front view, Equation (20) gives xv=x and yv=y.
Figure 3. Relationship between MCS and VCS
For the top view, the model
and its MCS are rotated by 90° about the Xv axis followed by
setting the y coordinate of the resulting points to zero. The y
coordinate is the one to set to zero because the Y axis of the MCS
coincides with the projection direction. In this case, [T] becomes
And Equation (20) gives xv=x and yv=-z.
If we use the above equation to transform the MCS itself, the X axis (y=z=0)
transforms to xv=x and the Y axis (x=z=0)
transforms to yv=-z.
The right view shown in Figure
3 can be obtained by rotating the model and its MCS about the Yv
axis by -90° and setting the x coordinate to zero. Thus,
which gives xv=-z and yv=y.
(20), (21), and (22) shows that [T] is a singular matrix with a column of zeros which
corresponds to the MCS axis that coincides with the projection or viewing
To obtain the isometric projection or view, the model and its MCS are customarily rotated an angle about the Yv
axis followed by a rotation about the Xv
axis. In practice, the angle is taken as to enable the
drafting (plastic) triangles in manual construction of isometric views.
Create a 3D block and assign coordinates to all 8 corner
points of the block Write a program in Matlab and use Equation (23) to
transform the 8 key points of the block. Setting z coordinates of the
key points to zero, then draw the block again. Do you obtain an isometric view
of the block? Show your Matlab program too. ◇
2.4 Perspective projections
One common way
to obtain a perspective view is to place the center of projection along the Zv
axis of the VCS and project onto the zv=0 or the XvYv
A new coordinate
system called the eye coordinate system (ECS) is introduced relative to the
line of sight. The ECS has an origin located at the same position as the
viewing eye. Its Xe and Ye axes are
parallel to the Xv and Yv axes of the VCS.
However, it is a left-handed system.
transformation matrix of coordinates of points from the VCS to the ECS or vice
versa can be written as
simply inverts the sign of the z coordinate. In the orthographic views,
the ECS is located at infinity. It is obvious that the ECS can be replaced by
the VCS. In this case, points with smaller z values are interpreted as
being further from the viewing eye.
projection is shown in Figure 4. From similar triangles, we can the following
If this equation
is expanded it gives
Figure 4. Perspective projection along the Zv
Use the same 3D block in Assignment 5. Write a program in
Matlab to apply Equation (27) to its 8 key points, then create the perspective
projection of the block. Change several values of d, how does the
perspective projection change? Show your Matlab program too. ◇