Webocreation

Tuesday, November 10, 2009

Computer Graphics

Introduction
Computer graphics are images displayed or animated on a computer screen. Applications of
computer graphics are widespread and growing rapidly. For instance, computer-aided design is
an integral part of many engineering processes. The entertainment industry has made the most
spectacular use of computer graphics–from the special effects in King Kong to the Nintendo
Wii.
Most interactive computer software for business and industry makes use of computer graphics
including screen displays, desktop publishing, and slide production for commercial and education
presentations. Consequently, most students studying a computer language spend some time
learning how to use two-dimensional (2D) graphics, and maybe three dimensional (3D) graphics.
2 Transformations in 2D
We begin by examining some of the basic mathematics used to manipulate and display graphical
images such as a letter of the alphabet. Such an image consists of a number of points, connected
lines or curves, and information about how to fill closed regions bounded by the lines and
curves. Often, curved lines are approximated by short straight-line segments, and a figure is
defined mathematically by a list of points.
The capital letter N can be determined by eight points, or vertices. The coordinates of the
points can be stored in a data matrix D. In addition to D, it is necessary to specify which
vertices are connected by lines, but we will omit this detail for now.
The main reason graphical objects are described by a collection of straight-line segments is that
the standard transformations in computer graphics map line segments onto other line segments.
Once the vertices that describe an object have been transformed, their images can be connected
with the appropriate straight lines to produce the compete image of the original object.
1. On graph paper, carefully draw the letter N. Construct a data matrix D containing the
eight points or vertices from your drawing. Include in your report a picture of your letter
N.
1
2. Given a matrix A = 1 .25
0 1 , describe the effect of left multiplication by A on the letter
N. Include in your report a picture of the letter N after the transformation by A.
3. In the previous question, the N looks a bit too wide after the transformation by the
matrix A. to compensate, multiply (on the left) the coordinates of the letter obtained in
the previous question by the matrix S = .75 0
0 1 . Include a picture of this letter N
in your report and describe with a short sentence the effect of left multiplication by the
matrix S.
There are three different ways we can move an object to another location. The first way
is by translation. We can translate points in the xy-plane to a new position by adding
translation amounts to the coordinates of the points. For example, we translate the point
(x, y) by moving dx units parallel to the x-axis and by dy units parallel to the y-axis to
the new point (x′, y′). Then x′ = x + dx and y′ = y + dy.
4. Translate your original letter N by 3 units to the right and 2 units up. Include a picture
of the translated letter N in your report, and describe in a short sentence the effect of this
translation on the original letter N.
Points can also be scaled (stretched) by sx along the x-axis and by sy along the y-axis into
a new point by the multiplications x′ = sx · x and y′ = sy · y.
5. Scale your original letter N by 1/2 in x and 1/4 in y. Now scale the original letter N by 2
in x and 4 in y. Include a printout of both scaled letters and describe in a short sentence
the effect of these transformations on the original letter N.
6. In the previous question, what matrices A and B would produce the effects of the trans-
formations on the letter N when the matrix D is multiplied on the left by A or B?
Points can also be rotated through an angle about the origin. Let (x, y) denote a point
in the plane that we wish to rotate through the angle , and let (xr, yr) denote the new
point after the rotation. Our first objective is to calculate the new coordinates in terms
of the old ones. Let b denote the length of the line segment from (0, 0) to (x, y) and
denote the angle between the x-axis and this line. Then x = b cos( ) and y = b sin( ).
Similar formulas give us xr and yr in terms of the angle + .
2
7. Find formulas for xr and yr similar to those given for x and y in terms of the angle + .
Use trigonometric identities to rewrite these formulas in terms of the angles and . Then
identify occurrences of x and y in these expressions, and rewrite the formulas to give xr
and yr in terms of x, y, and only.
8. Rewrite this transformation (the rotation through the angle ) as left multiplication by a
matrix A, that is, find A so that A x
y = xr
yr . We will call A the rotation matrix for
the angle .
9. Test your result from the previous question by rotation the point (1, 0) through an angle
of 60◦. First, use some scratch paper and trigonometry to see what the answer should be.
Then let B be the 2×2 rotation matrix for the angle of 60◦. Apply B to the appropriate
vector for the point (1, 0). Check that your matrix B gives the same result as the hand
calculation.
10. Repeat the preceding step with the point (0, 1).
11. Using your calculator, compute B6,B12,B18, and B24. Explain your results in terms of
rotations. In particular, how could you have predicted the particular matrices that your
calculator produced?
12. Let K be the 2 × 2 rotation matrix for a rotation of 15◦. Compute B2,K4,K2B,KBK
and BK2. Compare the results and explain what you see.
13. Explain why the product of any two 2 × 2 rotation matrices is another rotation matrix.
Illustrate your argument with a specific example.
14. In general, we know that matrix multiplication is not commutative; i.e., if A and B are
both n×n matrices, then usually AB is not the same as BA. However, rotation matrices
are a special case. Explain why, for any two 2D rotation matrices Q and R, it must follow
that QR = RQ. Then use B and K from the preceding step to illustrate your argument.
3 Homogeneous Coordinates
In Part 1, we saw that there were three types of transformations in 2D – translation, scaling,
and rotation. OF these three, scaling and rotation can be accomplished by left multiplication
of a 2 × 2 matrix. It turns out that translation cannot be accomplished by left multiplication
of a 2 × 2 matrix. WE would like to be able to treat all three transformations in a consistent
way, so that they can be combined easily. This can be done by expressing the points in homogeneous
coordinates. Homogeneous coordinates were first developed in geometry and have been
applied in graphics. Numerous graphics subroutine packages and display processors work with
homogeneous coordinates and transformations.
3
Each point (x, y) in the xy-plane can be identified with the (x, y, 1) on the plane in R3 that
lies one unit above the xy-plane. We say that (x, y) has homogeneous coordinates (x, y, 1). For
example, the point (0, 0) has homogeneous coordinates (0, 0, 1). Homogeneous coordinates for
points can be transformed via multiplication by 3 × 3 matrices.
1. What 3×3 matrix has the effect of translating the point (x, y) by dx units parallel to the
x-axis and by dy units parallel to the y-axis to the new point (x′, y′)? That is, find a 3×3
matrix A so that A

x
y
1

=

x′
y′
1

.
2. Repeat the previous question for scaling by sx along the x-axis and by sy along the y-axis.
3. Repeat for rotations through the angle .
The movement of a figure on a computer screen often requires two or more basic transfor-
mations. The compositions of such transformations corresponds to matric multiplication
when homogeneous coordinates are used. For the next three questions below, find 3 × 3
matrices that produce the described composite 2D transformation, using homogeneous
coordinates. Illustrate each composite 2D transformation on the image of a triangle with
data matrix D = 5 2 4
0 2 3 .
4. Translate by (3, 1) and then rotation 45◦ about the origin.
5. Translate by (−2, 3) and then scale the x-coordinate by .8 and the y-coordinate by 1.2.
6. Reflect points in the x-axis, and then rotate 30◦ about the origin.
7. Consider the following geometric 2D transformations: D a dilation (in which x-coordinates
and y-coordinates are scaled by the same factor), R a rotation, and T a translation. Does
D commute with R? In other words, is DR = RD for any rotation and dilation D? Does
D commute with T ? Does R commute with T ?
8. A rotation on a computer screen is sometimes implemented as the product of two shear-
and-scale transformations, which can speed up calculations that determine how a graphic
image actually appears in terms of screen pixels. (The screen consists of rows and columns
of small dots, called pixels.) The first transformation A1 translates vertically and then com-
presses each column of pixels; the second A2 translates horizontally and then stretches each
row of pixels, where A1 =

1 0 0
sin() cos() 0
0 0 1

and A2 =

sec() −tan() 0
0 1 0
0 0 1

. Us-
ing = 30◦, apply A1 followed by A2 to the rectangle with data matrixD = 1 1 4 4
1 3 1 3 .
4
Show, for a given angle , that the composition of the two transformations is a rotation
in 2D.
4 3D Computer Graphics
Some of the newest and most exciting work in computer graphics is connected with molecular
modeling. With 3D graphics, a biologist can examine a simulated protein molecule and search
for active sites that might accept a drug molecule. The biologist can rotate and translate an
experimental drug and attempt to attach it to the protein. This ability to visualize potential
chemical reactions is vital to modern drug and cancer research. In fact, advances in drug design
depend, on some extent, upon progress in the ability of computer graphics to construct realistic
simulations of molecules and their interactions.
Current research in molecular modeling is focused on virtual reality, an environment in which a
researcher can see and feel the drug molecule slide into the protein. Another design for virtual
reality involves a helmet and glove that detects head, hand, and finger movements. The helmet
contains two tiny computer screens, one for each eye. Making this virtual environment more
realistic is a challenge to engineers, scientist, and mathematicians. The mathematics we will
examine barely opens the door to this interesting and important field of research.
In 3D, a point can be rotated about any one of the three axes. The 3d version of the 2d rotation
matrix A are given by: P =

cos() −sin() 0
sin() cos() 0
0 0 1

, Q =

1 0 0
0 cos() −sin()
0 sin() cos()

, and
R =

cos() 0 sin()
0 1 0
−sin() 0 cos()

.
The matrix P rotates a point in 3D about the z-axis, Q about the x-axis, and R about the
y-axis. These are not the only possible rotations in 3D, but we will limit our attention to these
possibilities for now.
1. What feature of each of the matrices above tells us quickly the axis about which the
rotation is being done?
2. We saw earlier that multiplication of 2D rotation matrices is commutative, even though
matrix multiplication in general is not commutative. We’ll try this for 3D rotation matri-
ces. Let P30 and P45 be the matrices for rotations of 30◦ and 45◦, respectively, around the
z-axis. Compute P30P45 and P45P30. What do you observe?
3. Now compute P30R45 and R45P30. what do you observe? Hold an object (such as your
textbook) out in front of you, and rotate it as indicated in these product matrices. Try to
convince yourself that what you observed mathematically is consistent with reality. Write
a couple of sentences to describe what you observed, both physically and mathematically.
5
4. Try to generalize what you computed in the preceding steps. In particular, are any 3D
rotation matrices multiplicatively commutative? If so, which ones?
5. Suppose an image is stored in computermemory as we described earlier–a set of coordinates
in 3D space. Assume that when the object is displayed on the screen, the x-axis is
perpendicular to the screen, the y-axis is horizontal, and the z-axis is vertical. Thus, the
yz-plane is on the surface of the screen. The software can perform rotations by multiplying
each point (as a vector) by an appropriate rotation matrix and then displaying the result.
If we want to display the object so that it is first flipped over from our right to our left,
and then the axis projected toward us is tilted upward 20◦, what matrix can the computer
use to do this transformation? Explain your reasoning, and compute the matrix.
5 Homogeneous Coordinates in 3D
Just as 2D transformation can be represented by 3 × 3 matrices, using homogeneous coordi-
nates, 3D transformations can be represented by 4×4 matrices, providing we use homogeneous
coordinate representations of points in 3-space as well. By analogy with the 2D case, we say
that (x, y, z, 1) are homogeneous coordinates for the point (x, y, z).
In the first four questions below, give the 4×4 matrix for performing the indicated translations
in 3D.
1. Rotation about the y-axis through an angle of 30◦.
2. Translation by (−6, 4, 5).
3. Scaling by (−6, 4, 5).
4. Rotation about the z-axis through an angle of −30◦, and then translates by (5,−2, 1).
5. Illustrate the effects of the above transformations on the triangle with vertices (4.2, 1.2, 4),
(6, 4, 2), and (2, 2, 6).

No comments:

Post a Comment