The University of Colorado
Boulder, Colorado
Mathematics 4270, Fall 2000
The geometry of computer graphics
- Grades: If you wish your grades (both for the final and for the
semester), email me and
I will respond with your scores. (Restrictive new regulations
have made the posting of grades too difficult.) If
you wish your final, ask me for it some time next semester. If you
have permanently moved from CU, I'll mail it to you. I'll throw
them out in May.
- Location: none (class over)
- Schedule: none (class over)
- Professor: Walter Taylor
- Email address:
walter.taylor@colorado.edu
- Office Phone:
(303)
492-8344 (please email if at all possible)
- Office :
Mathematics Building 255
- Some more about me
- Office hours:
- Regular hours: none remaining (semester is over)
- Please email me; I almost always can find another time to see
you, or possibly I can answer your question directly on email.
Further special office hours will be announced when we get
seriously into projects
- Attendance: To be considered properly enrolled
in the course, you must have this hour
free on all MWF-days. At no time will I accommodate anyone
who has registered for the class with a schedule conflict,
academic or otherwise, or anyone who attempts to do so.
You are expected to be in class every day. On the other hand,
if you need to miss one class, on a day when there is no exam,
just do it. (In such a case, permission from me is irrelevant.)
I am happy to tell you in general terms what we covered in a
class you missed. Nevertheless, I really cannot begin to recreate
a class situation for you, since much of the material is
spontaneous, and depends on student participation.
- Class decorum: No eating. No drinking. No reading of newspapers,
etc. No conversation or talking. No exceptions. If you need to do
any of these things, please leave the room; I will not be offended.
It is of course an absolute no-no to have your cell phone ring
during class!
- Computer decorum:
All work must be submitted along with source code and with
a signed statement that it is your own work (or with collaborative
efforts clearly identified). This is true even though I never
grade code, and do not always read it in detail (unless I am helping you
to locate a problem). Moreover I consider you responsible for
taking reasonable care in assuring that your work is not
used by anyone else. (In practice this means taking some care in
erasing your source when you walk away from a shared PC -- while
retaining it on a diskette, of course -- discarding source printout
away from the lab, and so on.)
This page pertains only to Professor Taylor's section of
Mathematics 4270, for the fall semester of 2000. As far as I know,
this is the only section occurring this semester. For other sections
or other semesters, other details and regulations will no doubt apply.
An attempt will be made to keep this page up-to-date, but this
is not guaranteed. Students are responsible for every assignment made
in class, whether or not it ultimately appears on this page.
Prerequisites
- Mathematical
- Calculus -- three semester is about right, although those
three
semesters will cover much more than we need for 4270. We very
occasionally
differentiate some straightforward functions. Integration almost
never occurs. It is essential, however, in the second half of
the course, to have a basic working knowledge of
three-dimensional mathematical reality: vectors, (parametrized)
curves in space, surfaces
in space, and so on. Hence the prerequisite of third-semester
calculus. If someone got this material sooner than the third
semester, that would be ok too.
- Linear Algebra -- one semester (or possibly part of
a combined calculus-linear-algebra course). The general idea
of a matrix and how it represents a linear transformation. This
may be the most important prerequisite. It will in fact be
reviewed. Some students find that the modest applications
(camera modeling) that we make of linear algebra are very
helpful in furthering their understanding of that subject.
The course is about simple matrices representing motions,
rotations, projections (photography), and so on, not about
abstruse properties of vector spaces. We go one step at a
time with matrices, and they are not a major hurdle.
- Computing
- General -- a general understanding of how to approach
a computer, how to visit a web page (well, you're obviously
doing that now!), how to print,
familiarity with computer labs on campus, or with a unix
system, or with your own personal system. If you already are
familiar with the Acrobat Reader, that is a plus, but one can
learn it in ten minutes or less.
- Programming -- Very basic knowledge of a programming
language. I recommend C (or C++), for the following reasons: the
most thoroughly available language on campus is C, both
through various unix versions and through Borland C++. My
illustrative examples are in C. The free code that I give you
(which takes care of some messy I/O stuff, etc.) is all in
C. However, if you want to use a closely-related language like
Pascal or fortran, this is possible. (It is up to you to make sure
that a compiler for that language will be available to you on
an ongoing basis throughout the semester.)
We definitely need to program our projects, but we are not
concerned with fancy or sophisticated styles of programming.
A typical easy C-program can be seen
here. A good litmus
test would be to see if this programming makes any sense to you.
(Notice I said programming, not mathematics. The underlying
mathematics -- the validity of the computation and the utility
of the indicated output -- will be discussed in class. By
the way, the formatted output (printf) statements could
be replaced by the C++ statements cout(...), if that appeals
to you.) Programs of this level of difficulty will suffice for
the first project. As we go on there is a little more difficulty,
in terms of more complicated loops, and so on, but nothing
that a programmer would call terribly sophisticated. I give out
sample programs to take care of Input/Output and a number of
other issues (see the links below).
You do not need to own any personal computer equipment to
do this class (except, perhaps, some diskettes). There are a number
of possible computing scenarios. We can make it
work for those who prefer a unix machine, and also for those
who prefer to use a PC and Borland. (See the links in Class
Resources below, but
don't be intimidated by all the material. I have included
a number of different possibilities, many of which may not
be right for you at all.)
General Statement.
Computer Geometry, concerns itself with
the mathematics behind various techniques of graphic imaging, including
rigid motions, projection, ray-tracing and Bezier curves.
It is definitely a course on mathematics. Students will
be responsible both for the theory and for successfully completing
some practical projects. In these projects we create some of
the images that are discussed theoretically. Here are some possibilities
of the two-dimensional images that we can create:
- We warm up with ordinary functions, such as a sine curve.
- All of the conic sections: parabola, hyperbola, ellipse, and so on.
- Pictures that illustrate the definition of an ellipse.
- Fractal images, space-filling curves, and so on.
- Lissajous figures (model of oscilloscope patterns).
- Cubic splines (which can assume any shape -- we learn how).
- Tangent lines and families of tangent lines.
- Cardioids, spirals, and other exotic curves.
And in three dimensions:
- Planet Earth, as seen from any point in space.
- The stars (and constellations), as seen from any point on Earth.
- Regular figures like the dodecahedron and icosahedron.
- Helices, and other exotic space curves.
- Cubic splines in three dimensions.
- Modeling of ordinary objects (such as a chair) with these splines.
- The graph of a function of two variables.
- Hidden line removal.
- Binocular vision (stereoscope images).
- Models of solid objects like ellipsoids through ray-tracing.
All along, we work both on refining our imaging skills and
on learning (or re-learning) about the many fascinating parts
of mathematics that are the subjects of our images.
Our emphasis is about equally divided between studying the
mathematical concepts and producing the images. The course grade
is based on these two factors as well.
The textbook was written by Professor Taylor, especially
for the environment of this class.
We take a top-down approach; beginning with mathematics, and soon
moving to a consideration of a linguistic hierarchy. (For instance,
one approaches a graphics problem with a mathematical understanding,
moves to a programming language to automate one's understanding, and
then continues on to, say, a .ps file -- three of many possible
linguistic levels of understanding of a given graphics project.)
The reader should be aware -- if not already -- of the existence of
expert systems (Mathematica, Maple, Derive, etc.) that can perform these
tasks with almost no intervention (or understanding) required of the user. Our
purpose here is to gain an understanding of the mathematics that underlies
such systems -- both the mathematics of imaging (projection, rotation,
and so on) and the underlying mathematics of the images themselves.
Therefore we go much more slowly than an expert system: one step at
a time.
In fact, no particular knowledge of any specific graphics system is assumed,
or even particularly wanted, in this class. This course is about the
mathematics involved in designing such systems from scratch.
One caveat is that students possessing such systems, or possessing
code developed in other classes, or with access to expert systems
such as Mathematica, will be expected,
at least for this semester, to relate directly
to the basic mathematics and algorithms that are presented in the class.
The course is perforce less comprehensive than a completely general
understanding of "computer graphics." The top-down approach -- plus the
fact that our focus is geometric -- makes us regard many ostensibly
graphical issues as available subroutines. Thus we won't discuss
digital filtering, screen
display mechanisms, architecture of graphics boards, how printers
work, and so on. (One consequence of this narrow mathematical definition
of our subject matter is the fact that we can use a textbook that
is a dozen years old! This mathematics is timeless, whereas the
implementations have gone through several cycles of changes over these
twelve years.)
Almost all students who do their projects have done well in this
class, and have earned mostly A's, with some B's. (To neglect the
projects is an utter disaster, however.) If you are interested, you
can see the point system for the 1999 grading model just below.
Class Resources
Computing facilities.
Computing scenarios.
Project list.
(First arrow on page 78.)
Prototype programs.
(Second arrow on page 78.) Please note that some of these
programs are sylistically archaic. Work is being to update
them.
Programs to translate the
device-independent language. (Final arrow on page 78.)
Please note that some of these
programs are sylistically archaic. Work is being to update
them.
Students' page. This
page is open for whatever links you would like to offer. I would
like to display some of the cooler pictures that students come
up with this semester. Probably .pdf will use up the least amount
of your disk-quota. (As always, exercise caution in dealing with
links to other URL's. Do not casually upload, either to your computer
or to your mind.)
The textbook is The Geometry of Computer Graphics which Dr. Taylor
wrote expressly for this class.
If you need to talk with me further about
it, send email to walter.taylor@colorado.edu.
Textbook
The Geometry of Computer Graphics, by
Walter F. Taylor.
Wadsworth & Brooks/Cole 1992.
ISBN 0-534-17100-1
Errata, updates, etc., for the text.
The cover of the text. Learn to make this picture!
I have placed a copy on two-hour reserve at
the Engineering Library (ground floor of Mathematics Building).
Grading
- Projects, seven, each for eight points.
- Project deadlines.
Two projects
are due by the start of class on Nov 1. Two more projects are
due by the start of class on November 22. These projects will lose
one point per week or fraction thereof, after the deadline. Any
revision of the paper must meet the deadline or suffer the same
late penalty. The last three projects are due at the start of the
the final exam. This deadline applies also to any revisions. Anything
past the final deadline comes in at half credit. After a week (12/26),
it will be one-quarter credit. No credit for any work submitted in 2001.
- Exams, two 10/11 and 11/8. Each for 11 points
- Final Exam, as determined by the course schedule. 22 points.
-
Current list of scores.
Exams
- You must be present at all exams.
- No books, calculators, cards or other aids.
- The final examination will be Tuesday, December 19, 2000, at 4:30.
You must keep this
time free for the exam. Unless announced otherwise, the final
is to be in the regular classroom.
- Hour exams are in the usual classroom, at the usual class time,
and are limited to the usual fifty-minute hour.
- First Hour Exam: already happened
- Second Hour Exam: already happened
- Final Exam: already happened