ELEC 200 - Engineering Graphics - Fall 2007
Term Project
You are asked to create an animation (sequence of frames) of a scene with an object
moving through space using the transformations learned in class.
This is an opportunity to be creative!
The object is specified by the vertices and a connection matrix to represent the faces. The object can be specified in one of
at least 3 ways:
-
Find a wireframe model on web. If you to choose to use this method, you can
import the mesh into MatLab by using the
ImportSTL() function.
This function returns Faces, Vertices, and CData matrices that can be used
directly in calls to the patch() function. AutoCAD, 3D Studio Max, and Solidworks all
output .STL files, so any mesh you find which can be read by those programs will
can be imported into MatLab.
-
Construct your mesh by calculating the coordinates of each vertex and manually
assembling the vertices into faces as required by the patch() function. This can be
very tedious, unless you can take advantage of symmetries in the geometry of the
object you are creating, as demonstrated in the
FlyingPatches
example.
-
Create a MatLab surface object using the cylinder function
with a specified radius function r(z) which is aesthetically pleasing
(e.g. a wine glass shape).
To specify r(z), use at least 2 Bezier curves with C1 continuity.
Use the Matlab command surf2patch to convert the
cylinder to vertices and faces.
The object must be interesting to look at.
Optionally, there can be some additional objects in the background.
The scene should be lit using the MatLab light() function. One or more light sources
must be used. The object material properties (reflectivity etc) can be set directly by
manipulating the object's properties or by using the material() function.
You are asked to create a sequence of frames showing the object in various stages of
transformation. This sequence
is to be animated as a movie and written out as an *.avi file.
Use a sufficient number of
frames to illustrate
the following transformations (one at a time in sequence, or
more-than-one-at-a-time or some combination)
- translation
- rotation about the object center
- rotation about an arbitrary line
- scaling and/or shearing
Example code to get you started can be found on the
Animation Examples page.
The background objects (if any) are not transformed and remain constant.
The colormap of the object and properties of the lights may optionally
be changed from frame to frame.
Reports
The Progress Report will be submitted on paper in class, just like the
assignments.
The Progress Report should consist of the following:
- A project plan, outlining what you intend to do for your project.
- A high level design, outlining how you intend to do it.
- A summary of work done, describing the part of the work which is finished.
- A summary of remaining work, describing the part of the work which is unfinished.
This is also useful as a reality check for you: by the due date of the progress report, your
project ought to be about half finished... otherwise you could be in for some late nights
near the final due date!
The Final Report will be submitted on a CD at the beginning of the class
on the due date.
The Final Report should consist of the following files as applicable:
- yourname.avi file which can be played using standard video viewing software
such as Windows Media Player, Quicktime, etc.
- Matlab main code including comments with description,
- Matlab function files (if any),
- data files for objects (if any).
The projects will be marked by playing the *.avi file with Windows Media Player
and observing the results. Marks are awarded both for functionality
and aesthetics. Teamwork, sharing ideas and collaboration
is encouraged, but everyone should submit their own project files.
Progress Report and Final Report due dates are given on the
Homework Assignments page.
Some projects may be played as a demo on the last day of class
(unless you ask me not to).
Please use yourname.avi as the file name (not project.avi)