Last Updated: 8-10-99
Taught by:
Robert J. Ribando
Department of Mechanical
and Aerospace Engineering
School of Engineering
and Applied Science
University of Virginia
Meets: MWF at 10:00 a.m. in MEC 215 (Computer Studio)
Schedule Number: 32976
Course Purpose:
This course is intended to provide
both theory and practice in computer graphics and geometric
modeling. The former will be largely
from the text listed below and cover two and three dimensional
transformations, visual realism
(shading, coloring, hidden line removal,
etc.), curves, surfaces and general engineering
applications. The approximate distribution of textbook
coverage is given at the bottom. We will also study data graphics,
that is, the display of quantitative information
using modern computer graphics. In the process of learning the concepts of
computer graphics this semester,
you will become a good VB-6 programmer!
Text:
The required text is Computer Graphics, C Version, 2/e
, by Donald Hearn
and M. Pauline Baker, 1997, Prentice Hall,
ISBN 0-13-530924-7. This book does include code snippets in C, which probably
is not the programming language that most of you will want to use.
In recent years most students have chosen to work in Visual Basic. There
are many good books on VB; I have also ordered a limited number of copies
of Learning to Program with Visual Basic, by Patrick McKeown, Wiley,
1999, ISBN 0471-19814-5. All the examples discussed in this book are
indeed business applications, but with it (as well as with several other VB
books I
have found) you get a copy of Visual Basic 6.0, Working Model Edition.
This is a full version, but dies after a year. Visual Basic 6 (and Visual C++)
will be available in the ITC classrooms (including ours),
the public laboratories (e.g., Catlin
Lab), the MANE Design Lab and the CS Labs, so there really is no need for you to
buy it. I have found the book Mastering Visual Basic 6 by Evangelos
Petroutsos, Sybex, 1998, (ISBN 0-7821-2272-8) a very helpful reference. It covers
substantially more graphics than any other VB books, but its shear bulk
means you wouldn't want to carry it to class with you.
Class Attendance and Decorum
Students are expected to
attend all classes, and attendance will be taken. A point will
be deducted from the final grade
of any student for each unexcused absence in excess of three.
In extreme cases of habitual absence or tardiness,
the student will be dropped from the course.
Between 10 and 10:50 the computers in our classroom are to be
used only for course purposes - and then only when you are instructed to.
This especially means no e-mailing, netsurfing,
working on other courses, etc. The penalty for inappropriate
use of the computers
is the same as for habitual
tardiness or absence.
Computer Assignments
We will be doing a mix of projects at a rate of about one every week
and a half (faster than that at the beginning of the semester, slower
at the end). The first two will involve use of the graphics
capabilities within Excel. The remainder of the assignments will involve
programming in a high level language.
You may do the
programming assignments in whatever high level language you
choose, but last year most students chose to work in Visual Basic.
A few who had previously learned Java, perhaps through a summer job, did
their assignments in that.
We will spend some
class time learning both VB and
Visual Basic for Applications (VBA), a subset of VB that is
available within the Excel spreadsheet . VB-6 and Excel are
available on the server in the ITC classrooms and Catlin Lab, as
well as in the MANE Design Lab and the CS Labs.
If you do not already have one, you will
definitely want to establish a home-directory account for
yourself.
A listing of all code you write will normally be a part of each homework
submission, but to save paper, please exclude any code I provide you.
Homeworks and handouts not picked up during class will be found in the top
section of the plastic file on the wall next to my office door (MEC 310).
Final Project
Each student will present and submit a final project. This project may involve the
development of a program in VB or perhaps use of AutoCad or some other
graphics package.
This is an opportunity to
use your own creativity to make something unique. It could involve the design of a piece of
equipment or of a process. You might use
computer graphics to make a technical
presentation. Perhaps you could
look back to some other course you have taken and find a
way using computer graphics
to make a point that wasn't so clear using a conventional chalk
and blackboard approach. Maybe you could animate a time-dependent process. This
project could be something
that eventually will be part of your senior thesis and it should
definitely be something you would be proud to show a potential employer. No project that
is simply "artwork" will be
accepted, although technically innovative artwork is acceptable.
The project must have technical merit. To ensure that
the project you wish to do is acceptable,
I will show you some of the best projects from
previous years, and you will submit a one-page
description of your proposed project no later than Nov. 6.
Toward the end of the semester there will be no regular homework
assignments so that
you can devote your entire attention to your final project.
Honor System
This is an elective course, and you are
assumed to have signed up for it because you
want to learn as much as you can about computer graphics.
That being the case, I will
assume that any work you turn in is an accurate indicator of your own skill and
mastery of
the subject. You are encouraged to work on your
own to the greatest extent possible,
although collaboration with other students may at times be educational and acceptable, (and
in the case of a computer package
nearly impossible to do without). Any significant
assistance received from another student
or the instructor should be acknowledged in
writing on the project submitted. This is a
matter of personal honesty as well as proper
professional ethics.
Examinations
There will be two hour-long quizzes covering theory, but no final exam.
Grade
2 hour-long quizzes: 30%
Home works: 30%
Final project: 30%
Class participation: 10%
There are plenty of features in both Visual Basic and VBA
that I am not
an expert on and, in fact, many that I haven't even tried.
That being the case, I strongly
encourage any student to step up in class and give a demonstration! Such meritorious
service will be acknowledged in the Class participation grade.
Office Hours
You are welcome to visit (310 MEC), e-mail (rjr@virginia.edu),
fax (982-2037) or call (924-6289) anytime. My other course this
semester is on TV at 3:30 on Mondays and Wednesday, so I will be
less enthusiastic about seeing you on those afternoons.
Prerequisites
ENGR 160 (Engineering Concepts) and
either CS 182 or CS 101 (or equivalent) are
prerequisites to this course.
Communications
Any materials not provided in class will be
posted to the class website. It is your
responsibility to check that regularly.
Impairments
Any student who feels that he or she may need an accommodation because of an
impairment should come see me.
Final Presentations
Presentations of the final
project (see above) will be made during the time normally
allotted to the final exam, which is Thursday, December 16, 1999
from 9:00 to 12:00.
Assignments, Materials, etc.
R. J. Ribando (home)
Weekly Schedule
Below are reading assignments for the semester. Particularly towards
the beginning of the course while we are learning some VBA and VB and
their graphics features,
what we do in class may not necessarily correspond closely
to the outside reading. Also, this fall is our first time with this text
(what we used in past years is out of print), so the
times actually allotted to
each topic may not match perfectly.
| Week |
Date |
Class |
Assignments
|
| 1 |
Sept. 1 |
Ch. 1 - Introduction |
| Sept. 3 |
Ch. 1 |
|
| 2 |
Sept. 6 |
Ch. 2 - Overview of Graphics Systems |
|
| Sept. 8 |
Ch. 2 - |
|
|
| Sept. 10 |
Ch. 3 - Output Primitives |
|
|
| 3 |
Sept. 13 |
Ch. 3 |
|
| Sept. 15 |
Ch. 4 - Attributes of Output Primitives. |
|
|
| Sept. 17 |
Ch. 4 - . |
|
|
| 4 |
Sept. 20 |
Ch. 5 - Two-Dimensional Geometric Transformations |
|
| Sept. 22 |
Ch. 5 - |
|
|
| Sept. 24 |
Ch. 5 - |
|
|
| 5 |
Sept. 27 |
Ch. 6 - Two-Dimensional Viewing |
|
| Sept. 29 |
Ch. 6 |
|
|
| Oct. 1 |
Ch. 6 |
|
|
| 6 |
Oct. 4 |
Ch. 7 - Structure and Hierarchical Modeling |
|
| Oct. 6 |
Ch. 7 |
|
|
| Oct. 8 |
Ch. 8 - Graphical User Interfaces and Interactive Input Data |
|
|
| 7 |
Oct. 11 |
Ch. 8 |
|
| Oct. 13 |
Ch. 9 - Three-Dimensional Concepts |
|
|
| Oct. 15 |
(Fall Break) |
|
|
| 8 |
Oct. 18 |
Ch. 10 - Three-Dimensional Object Representations |
|
| Oct. 20 |
Ch. 10 |
|
|
| Oct. 22 |
Ch. 10 |
|
|
| 9 |
Oct. 25 |
Ch. 10 - |
|
| Oct. 27 |
Ch. 11 - 3-D Geometric and Modeling Transformations |
|
|
| Oct. 29 |
Ch. 11 |
|
|
| 10 |
Nov. 1 |
Ch. 11 |
|
| Nov. 3 |
Ch. 11 - |
|
|
| Nov. 5 |
Ch. 12 - Three Dimensional Viewing |
|
|
| 11 |
Nov. 8 |
Ch. 12 |
|
| Nov. 10 |
Ch. 12 - |
|
|
| Nov. 12 |
Ch. 12 - |
|
|
| 12 |
Nov. 15 |
Ch. 13 - Visible Surface Detection Methods |
|
| Nov. 17 |
Ch. 13 - |
|
|
| Nov. 19 |
Ch. 13 - |
|
|
| 13 |
Nov. 22 |
Ch. 14 - Illumination Models and Surface-Rendering
Methods |
|
| Nov. 24 |
(Thanksgiving Break) |
|
|
| 14 |
Nov. 29 |
Ch. 14 |
|
| Dec. 1 |
Ch. 15 - Color Models and Color Applications |
|
|
| Dec. 3 |
Ch. 15 |
|
|
| 15 |
Dec. 6 |
Ch. 16 - Computer Animation |
|
| Dec. 8 |
Ch. 16 |
|
| Dec. 10 |
Ch. 16 |
|