Transformations and Projections in Computer Graphics

By David Salomon. Published by Springer Verlag August 2006. ISBN 1-84628-392-2. LCCN still unknown. xiv+290 pages.

A BibTeX style file and an Errata list are available.

Written mostly in 2005 (although some of the material comes from old class notes), the book consists of four chapters, three appendixes (vector products, quaternions, and color figures), answers to exercises, a bibliography, and index.

Dedicated to Dick Termes, whose work and talent have contributed much to the quality of this book.

From the Preface.

There is no question that computer graphics has become an important field that pervades our lives in many areas. Many advertisements on television and in magazines are graphical and are created on computers. The screens of computers, PDAs, cellular telephones, and similar devices interact graphically with the user. More and more full-length feature films are being created entirely by computers. Graphics software enables users to draw engineering plans, to create technical and artistic illustrations, and to develop fonts of text.

Computer graphics is an immense discipline, encompassing many fields, but this book concentrates on the three key terms Transformation, Projection, and Perspective. Following is a short discussion of each term.

The term ``transformation'' as discussed in this book refers to a geometric operation applied to all the points of an object. An object may be moved, rotated, or scaled (shrunk or stretched). It may be reflected about a plane (as in a mirror) or deformed in some way, as illustrated by Figures Intro.1 and 1.1. Several transformations may be combined and may completely change the position, orientation, and shape of the object. Many graphics operations are greatly simplified with the help of transformations. A forest can be created from a single tree by duplicating the tree several times and moving and transforming each copy differently. An object can be animated by moving it along a path in small steps while also rotating and scaling it slightly at each step. Transformations, both two-dimensional and three-dimensional, are discussed in Chapter 1.

Currently, virtually all our graphics output devices are two dimensional, but many graphics projects and objects are three-dimensional. Converting a three-dimensional graphics object or scene into two dimensions is a mathematical operation called projection. In general, a projection transforms an object from $n$ dimensions to $n-1$ or fewer dimensions, but in computer graphics $n$ is always 3. Because of the loss of dimensions, an object loses some of its details when projected. It is therefore important to study the various types of projections and always use the right one. Chapters 2 through 4 describe the three main classes of projections: parallel, perspective, and nonlinear.

Table of Contents

Book Cover
Preface vii

Introduction 1

1 Transformations 5
1.1 Introduction 5
1.2 Two-Dimensional Transformations 8
1.3 Three-Dimensional Coordinate Systems 36
1.4 Three-Dimensional Transformations 37
1.5 Transforming the Coordinate System 54

2 Parallel Projections 57
2.1 Orthographic Projections 58
2.2 Axonometric Projections 60
2.3 Oblique Projections 67

3 Perspective Projection 71
3.1 One Two Three Infinity 73
3.2 History of Perspective 78
3.3 Perspective in Curved Objects 84
3.4 The Mathematics of Perspective 87
3.5 General Perspective 96
3.6 Transforming the Object 101
3.7 Viewer at an Arbitrary Location 105
3.8 A Coordinate-Free Approach: I 114
3.9 A Coordinate-Free Approach: II 117
3.10 The Viewing Volume 121
3.11 Stereoscopic Images 123
3.12 Creating a Stereoscopic Image 128
3.13 Viewing a Stereoscopic Image 132
3.14 Autostereoscopic Displays 142

4 Nonlinear Projections 145
4.1 False Perspective 145
4.2 Fisheye Projection 147
4.3 Circle Inversion 162
4.4 Panoramic Projections 166
4.5 Cylindrical Panoramic Projection 167
4.6 Spherical Panoramic Projection 174
4.7 Cubic Panoramic Projection 180
4.8 Six-Point Perspective 183
4.9 Other Panoramic Projections 185
4.10 Panoramic Cameras 188
4.11 Telescopic Projection 194
4.12 Microscopic Projection 196
4.13 Anamorphosis 197
4.14 Map Projections 199

A Vector Products 221

B Quaternions 227

C Color Figures 231

Answers to Exercises 243

Bibliography 277

Index 283

From the back cover

Transformations and projections are used extensively in Computer Graphics, a field which is now a part of everyone’s lives via feature films, advertisements in the media, the screens of PDAs, mobile phones, and other vehicles and outlets. Transformations and Projections in Computer Graphics provides a thorough background in these two important topics in graphics. The book introduces perspective in an original way and discusses the mathematics of perspective in detail, yet in an accessible way. It also treats nonlinear projections in depth, including the popular fisheye, panorama, and map projections used by many professionals to enhance digital images. Only a basic knowledge of linear algebra, vectors, and matrices is required of readers, as key ideas are introduced slowly, examined and illustrated by figures and examples, and enforced through solved exercises.

Topics and features:

Provides a complete and self-contained presentation of the topic's core concepts, principles, and methods

Written in a clear, easy-to-understand style, geared toward nonexpert professionals and students who want to understand the chief techniques and methods employed

Features a 12-page color section, numerous figures, and many helpful examples

Includes a wealth of exercises, as well as answers to many of them

Integrates a complementary website that supplies additional auxiliary material from time to time and an errata list

Written for computer professionals both within and outside the field of Computer Graphics, this succinct text/reference will prove an essential resource for readers.

This book is also suitable for graduates and advanced undergraduates studying in Computer Graphics and Computer-Aided Design (CAD) courses.

Supplementary Material

The book has several Mathematica and Matlab code snippets. The codes for Chapter 3 are available here as a Mathematica Notebook, and the codes for the other chapters can be found here as a plain text file.

Bill Wilburn has developed three Mathematica notebooks and made them available to the readers. I hope they will prove useful. This one illustrates many of the topics discussed in the book. Another notebook shows how to use builtin Mathematica functions to perform linear transformations, and the third notebook illustrates the nonlinearity of the circle inversion transformation.

Section 3.3 discusses perspective in curved objects. The document available here (PDF, 10 pages, 844KB) extends this discussion. It shows how to draw curved objects in perspective and describes the special case of symmetric objects. In particular, the projection of circles into ellipses is treated in detail.

Figure 4.23 (page 171) shows a grid for 4-point perspective, a technique that's also mentioned on pages 184-185. The short, 7-minute, interesting video found here shows Dick Termes using such a grid to draw a simple example in 4-point perspective.


Section 4.2 discusses the fisheye projection. The figure above is an interesting example of this projection. It was taken through a door peephole, as proposed in

Stereohomology is an attempt to unify and simplify the common geometric transformations. This attempt seems particularly useful when an object has to be reconstructed from its projections. The paper available here discusses the principles of stereohomology. The author remains anonymous because this paper is still under review.

Last Updated 22 June 2011.