Sometimes the title of a book fails to describe its usefulness. John Vince’s book applies to more than computer graphics: it is a resource for many areas in applied mathematics. It would also be a good supplement for anyone studying vector algebra for the first time, or as a review, for example, in calculus and analytical geometry, advanced geometry, and computer modeling and simulation.
The book is not a textbook: it lacks problem sets to be solved, and it is not written as a continuous narrative. It is closer to a reference or a guidebook. Each chapter has a general theme, and each section has a specific topic that is presented in a logical sequence in a nearly self-contained manner. Each topic has a well-developed derivation or mathematical demonstration that is thorough and easy to follow. Students in computer graphics courses would find it very useful if their class discussions moved into the mathematical fundamentals underlying the tools. It is possible to offer a solid computer graphics course in which one does not get much further than the use of OpenGL, for example. Undergraduate students especially lack the mathematics background that this book provides.
The first chapter is short, and begins by explaining what scalars and vectors are. The second chapter presents vectors, starting with basic properties and progressing to interpolation, direction cosines, and changes of coordinate systems. Chapter 3 discusses straight lines using paired sections of development, using both Cartesian and parametric representations. Lines in both two-dimensional (2D) and three-dimensional (3D) space are addressed through intersections, normals, and other frequent applications.
Chapter 4 extends the discussion to planes. The previous three chapters are interrupted by a short chapter on lines reflecting off a line or a plane. Chapter 6 is on intersections, of lines intersecting with objects in 2D and 3D spaces, and of planes interacting with other planes and solid bodies. Chapter 7 features complex numbers and the properties of quaternions. The objective of the eighth chapter, on vector differentiation, is to obtain normal vectors to curves in a plane and surfaces of 3D objects.
The last three chapters are more directly related to computer graphics as seen by the viewer, covering projections and rendering and representing motion. Two appendices follow. The first summarizes the laws of vector algebra, and the second elaborates on the vector triple product. References and a list of books for further reading complete the volume.
It is surprising how much genuinely useful information has been collected in this slim volume. It is comprehensive and coherent, and a good addition to the library of any computational scientist.