Mathematics 308 - Fall 2003 - Euclidean geometry


  • Fall term
  • Section 101
  • 10:00-11:00 M W F
  • Buchanan D225

In the course this fall, as in previous years, I will show how mathematics and computers can be used together to produce graphics of mathematical interest. The primary programming language to be used is PostScript. It is ideal for this purpose because its imaging model uses affine (and even, implicitly, projective) geometry in a crucial manner. Elementary 3D graphics including perspective, and perhaps something about the regular solids, will also be discussed. A 3D extension to PostScript will be introduced for this purpose.

Towards the end of the term, students will have to propose and carry out their own projects. You can even look at some previous years' projects:

  • M308 - Fall 1996. These were among the earliest a class ever did, and they wouldn't be acceptable now because of their low mathematical content. They do illustrate in many cases a high technical level.
  • M309 - Fall 1999. These are of much higher mathematical quality, although the quality varies widely. A few (Dawson, Ting) are spectacular.
  • M308 - Fall 2002. Also some spectacular ones.
  • This year's projects
There are therefore two components to the course: (1) Euclidean geometry and (2) graphics design, but of course they interact. Geometry is required to produce graphics, and graphics can be used to explain geometry.


The principal sources are available on the Internet.

Graphics design

Students will be given accounts in the Mathematics Department undergraduate computer laboratory, and will also be able to run GhostScript or GhostView on PC-compatible machines or Macintoshes elsewhere. The documentation below is usually in PDF format, but occasionally in PostScript. You can obtain a PostScript interpreter at the GhostView & GhostScript home pages. For PDF files Acrobat Reader is available from Adobe.

We have PostScript help on our local help facility. In addition, the following are available on line:

More links to information on PostScript can be found at Luc Devroye's PS site.

Using the Mathematics Department computers remotely

There are lots of tools available for image manipulation and other useful tasks on the Mathematics Department machines, and if you can connect to one of our machines, you can use them at home almost as easily as if you were in the building. There are two programs you will need to install on your computer if you are running Windows. One is ssh, a program that sets up secure connections over the Internet. This and its partner programs allow file transfer and simple terminal interactions. To get the Mathematics machines to display on your own machine, you need some kind of X11 windows implementation.

A version of ssh that costs nothing and that apparently works very well can be downloaded from PuTTY.

As for X11, try Cygwin.


  • Assignment 1 (Pythagoras' Theorem)
  • Assignment 2 (First PostScript assignment) In #4, you are not allowed to do Euclid's proof, the one referred to in #1. No rotating triangles. For #2, look at the beginning of Chapter 6 of the Manual. What data go into making one of those triangles? Its vertex and vertex angles? Ideally, you will make up a procedure that has a few arguments at most and builds the complete triangle on the chord. Another that does the angular bit.
  • Assignment 3
  • Assignment 4
  • Assignment 5 due Monday, November 3 - redo the midterm
  • Solutions to the midterm
  • Assignment 6 - the last assignment
  • About projects. Read every word of this before you propose a project. Nothing in it is superfluous. The absolute deadline for submitting a proposal is 12:00 noon on Friday, November 28. None - really, NONE - will be considered after that date, and your grade on the project will be 0. Nor will major changes in your proposal be accepted after this. The deadline for handing in projects is midnight on December 18. After that, 5% will be taken off for each day late, up to midnight December 22.
PostScript homework should be bundled all into one file and sent as an attachment to Each question should have a title page, and the assignment as a whole should have a title page with your name on it. Care should be taken using gsave ... grestore to make pages independent of each other. The grader will, if all goes well, grade you on the basis of your pictures alone, not your code. (God forbid he should ever have to look at it!) When doing the individual problems, just use one file for each, but then at the end make them into one large file. Before finally submitting an assignment, run the whole file through your PostScript viewer to be sure it works OK. If we have to send it back to you for silly reasons it will be marked as if it were late.

Sample code