Learn how to use the dot product to compute nine different angles of interest that a vector makes with various elements in 3D space. Also learn how to use the dot product to find six of the infinite set of vectors that are perpendicular to a given vector, and how to use the dot product to perform backface culling of an image.
Table of contents
Preface
This module is one in a collection of modules designed for teaching
GAME2302 Mathematical Applications for Game Development at Austin
Community College in Austin, TX.
What you have learned
In the previous module, which was the first part of a twopart miniseries on
the vector dot product, you learned the fundamentals of the vector dot productin both 2D and 3D. You learned how to update the gamemath library to support
various aspects of the vector dot product, and you learned how to write 2D and3D programs that use the vector dot product methods in the gamemath library.
What you will learn
In this module, you will learn how to apply the vector dot product to three
different applications. You will learn
 how to use the dot product to compute nine different angles of interest
that a vector makes with various elements in 3D space,
 how to use the dot product to find six somewhat unique vectors of the infinite
set of vectors that are perpendicular to a given vector as shown in
Figure
4 , and
 how to use the dot product to perform backface culling
to convert the image shown in
Figure 1 to the image shown in
Figure 2 .
Figure 1 
A 3D image before backface culling.
Figure 2
 The 3D image after backface culling.
Viewing tip
I recommend that you open another copy of this module in a separate
browser window and use the following links to easily find and view the Figuresand Listings while you are reading about them.

Figure 1 . A 3D image before backface culling.

Figure 2 . The 3D image after backface culling.

Figure 3 . Screen shot of the output from the program named DotProd3D05.

Figure 4 . Six (magenta) vectors that are perpendicular to a given (black) vector.

Figure 5 . Screen output when one coordinate has a value of zero.

Figure 6 . A general formulation of 3D vector perpendicularity.

Figure 7 . Output from Exercise 1.

Figure 8 . Output from Exercise 2.
Listings

Listing 1 . Beginning of the actionPerformed method in the program named DotProd3D05.

Listing 2 . Create ColMatrix3D objects that represent projections.

Listing 3 . Create and draw vectors.

Listing 4 . Compute and display the nine angles.

Listing 5 . Beginning of the actionPerformed method for the program named DotProd3D06.

Listing 6 . Remainder of the actionPerformed method.

Listing 7 . The method named drawTheCylinder in DotProd3D04.

Listing 8 . The method named drawTheCylinder in DotProd3D03.

Listing 9 . Source code for the gamemath library named GM02.

Listing 10 . Source code for the program named DotProd3D05.

Listing 11 . Source code for the program named DotProd3D06.

Listing 12 . Source code for the program named DotProb3D04.

Listing 13 . Source code for the program named DotProb3D03.