[ Bill Casselman's home page ]

Table of contents

Introductory
Chapters 1 - 15
Appendices
Epilogue
Supplement
Code samples and packages
Other reading on PostScript
Other reading
on mathematical graphics
Errata et corrigenda
Copyright notice

Click here for information about this imagexxxxxxxxxx

This manual has been available on this site since about 1996, with improvements taking place frequently. The current version has been published as a book of about 350 pages by Cambridge University Press. By agreement with the Press, however, it will remain posted on this web site. Many improvements in the current version over previous ones are due to the (anonymous) referees of the Press, whom I wish to thank heartily. I also wish to thank Lauren Cowles, of the New York office of the Press, for much help with preparing the original version for publication. The paper edition appears also in Duotone red and black. For information on obtaining the paper edition, take a look at the Cambridge Press catalogue.

From January 1, 2004 on, no changes except simple error corrections will be made to the main body of the text here --- at least for a while. Corrections to both paper and web editions will be found below.

I am grateful to all those who have pointed out errors or lacunae in older versions of this manual, and I hope readers will continue to send me mail about what they find - both good and bad - at cass@math.ubc.ca.

Copyright © 2005 by Bill Casselman. Permission is granted for users of this resource to make one copy for their own personal use. Further reproduction is strictly prohibited without the express permission of the copyright holder.

Introductory



This text is offered in PDF format, but also in PostScript. To read the PostScript files, which are often faster to load, you will need a PostScript interpreter. But you will need one in any event in order to read the book fruitfully. You can obtain Ghostscript and viewers at the
GhostScript home pages. You will probably want to set it as the program with which your browser reads .ps files (of type application/postscript).

Preface
pdf
ps

Table of contents (for the entire text)
pdf
ps

Chapters 1 - 15

Chapter 1 - Getting started
pdf
ps

Chapter 2 - Elementary coordinate geometry
pdf
ps

Chapter 3 - Variables and procedures
pdf
ps

Chapter 4 - Coordinates and conditionals
pdf
ps

Chapter 5 - Loops and arrays
pdf
ps

Chapter 6 - Curves
pdf
ps

Interlude
pdf
ps

Chapter 7 - Procedures as arguments
pdf
ps

Chapter 8 - Non-linear transformations in 2D
pdf
ps

Chapter 9 - Recursion in PostScript
pdf
ps

Chapter 10 - Perpective and homogeneous coordinates
pdf
ps

Chapter 11 - Introduction to drawing in 3D
pdf
ps

Chapter 12 - Rigid motion in 3D
pdf
ps

Chapter 13 - PostScript in 3D
pdf
ps

Chapter 14 - Drawing surfaces in 3D
pdf
ps

Chapter 15 - The regular polyhedra
pdf
ps
Another way of constructing the regular polyhedra

Appendices

Appendix 1 - Summary of important PostScript commands
pdf
ps

Appendix 2 - Setting up your PostScript environment
pdf
ps

Appendix 3 - Structured PostScript documents
pdf
ps

Appendix 4 - Simple text display
pdf
ps

Appendix 5 - Zooming
pdf
ps

Appendix 6 - Evaluating polynomials
pdf
ps

Appendix 7 - Importing PostScript files
pdf
ps

Epilogue

Graphics style in exposition
pdf
ps

Supplement

Another way to construct the regular polyhedra
pdf

A better version of Hodgman-Sutherland
pdf
ps

Code samples and packages

The plural pictures means there are several pages.

Simple diagrams from Chapter 1 (pictures) (source)
Arrows
Straight (pictures) (source)
Curved (pictures) (source)
An example of zooming in (pictures) (source)
Cubes
Frame, orthogonal projection (picture) (source)
Frame, perspective projection (picture) (source)
Solid (picture) (source)
Shading (picture) (source)
Shadowed (picture) (source)
Moving (pictures) (source)
A simple sphere in PostScript (picture) (source)
A sphere with Gouraud shading (picture) (source)
A doughnut in PostScript (picture) (source)
A figure where chopping is necessary to make a binary space partition (picture) (source)
An open box (picture) (source)
The package arrows.inc [Chapter 1]
The package lines.inc [Chapter 4]
The package hodgman-sutherland.inc [Chapter 4]
The package mkpath.inc [Chapter 7]
The package transform.inc [Chapter 8]
Map data in PostScript form (maps.zip) from original data at
http://archive.msmonline.com/1999/12/vis2.htm (2.5 MB) [Chapter 8]
The package hull.inc [Chapter 9]
The package ps3d.inc [Chapter 13]
The package bsp.inc - for building binary space partitions [Chapter 14]
The package polyhedra.inc - for drawing regular polyhedra [Chapter 15]
The PERL script psinc - for including files explicitly instead of running them [Appendix 2]
The package zoom.inc [Appendix 5]
The package hs.inc [Supplementary note on Hodgman-Sutherland]
The package stack.inc [Supplementary note on Hodgman-Sutherland]

Other references on PostScript

The following official guides from Adobe are available on line:
PostScript language tutorial and cookbook (the `blue book') - a classic, with lots of short useful samples.
PostScript language design (the `green book')
Much relevant stuff, including the PostScript language reference language manuals (originally the `red book') - sooner or later you will have to look at this. It verges on readable.

Other technical (very technical) documentation is also on line at http://partners.adobe.com/asn/tech/ps/index.jsp and http://partners.adobe.com/asn/tech/ps/technotes.jsp. You can retrieve here, among other things, an earlier edition of the reference manual.

Other Cool Things:
Luc Devroye's PostScript pages with lots of further links (including one back to here)
The phrase PostScript humour may look like an oxymoron to you, but you can find an attempt at PostScript: a computer language. There is more from the same guy at http://www.prepressure.com/ps/whatis/PSoverview.htm.
The incredible PostScript web server (which, alas! doesn't always seem to be working lately)
Don Lancaster's pages including lots of libraries of useful stuff (and also of much useless stuff). Some discussion of how to achieve transparency.
On line PostScript operator dictionary (taken directly from the reference manual). The header pages are in German, but the rest in English.
David Maxwell's short PS manual. David Maxwell was a graduate student here at UBC when he did these pages, but has since gone on to a More Satisfying Life. Luckily, someone far away mirrored them before UBC flushed them. They were probably mirrored illegally, but hey! they're still around. We wish the mirror site luck.
On line PostScript operator dictionary (taken directly from the reference manual). The header pages are in German, but the rest in English.

Other reading on the use of illustration in mathematical exposition

Pictures and proofs (an article in the October, 2000 issue of the Notices of the A.M.S. on the use of illustrations in mathematics)
A review of one of Edward Tufte's classics on information graphics (from the January, 1999 issue of the Notices)

Errata et corrigenda

(To appear soon)