M.S. Project Proposal: Tinker Toys Online
Andrew Robbins
5/21/96
The goal of this project is to create an interactive computer graphics
teaching aid that will help students understand the
transformations that are used to manipulate and view three-dimensional
graphical objects.
Tinker Toys Online will be an on-line model of the
tinker toys that are commonly used to aid in understanding
three-dimensional graphics
transforms. It will be implemented as a java applet and reside on a web
page that will also reference HTML user guides. This will increase the
potential audience and minimize the issues of access to the application
software, platform inter-operability and dependence on previously loaded
software libraries.
There will always be a place in the world for a student bending a paper
clip into a three-dimensional (x, y, z) axis and saying "Now if I rotate the
tennis ball in my left hand around the x-axis for 30 degrees...", but the web
page, used by itself or in conjunction with its physical counterparts,
will provide a deeper understanding of how the transformation is
accomplished. What it looses in
physical immediacy, it makes up for by allowing the student to examine
how the object is transformed and how various views are created.
Relevant information such as the World and View Reference Coordinate systems,
viewing parameters, and vertex coordinates of the model will be presented.
The student will be able to manipulate the model and view objects and
examine the resulting transform matrices and their effects.
In addition to graphical control of objects, the project will allow
the user to specifically set the translate value, rotate angle or
scale percentage by typing them in. A professor may use this
feature to create a directed study assignment in which a set of questions
leads the student through a predetermined scenario.
Deliverables
There will be four major deliverables:
- An informative teaching aid, implemented as a java applet.
- Written user and technical documentation. The HTML user guides,
java class api definitions (in the standard java format used by Sun),
and formal project write-up will also be available on-line.
- Extendable object classes. The project will be designed using
an object-oriented methodology and may serve as a platform for
further development.
- Java code. The project will be implemented in well-documented,
clearly written java code that other students may use as an
introduction to the language. The source code will be available
on-line along with the documentation.
Functionality
The applet will consist of four main windows, described below. Each
window will be created as an external frame and may be manipulated
independently while the browser is used to display HTML user guides.
- Object Control Window
- The Object Control Window may be thought of as the main
window. It is displayed throughout the life of the applet
and contains three panels and a message display bar.
- The World Panel will show a "Bird's eye
view" of all the objects as they sit in world space.
- The View Window Panel will show what is visible
in the View Window using the current viewing
parameter settings.
- The Operation Panel is used to
select the desired operation and method of control
when moving objects.
- The Message Bar will display messages and
information about the objects.
- The following objects may be viewed and modified:
- the (x, y, z) World-Coordinate (WC) System
- the (u, v, n) Viewing-Reference Coordinate
(VRC) System
- the View Window
- the Front and Back Clipping Planes
- the PRP (Projection Reference Point)
- and the Model, a house
- Objects may be translated, rotated about any axis, and
scaled. Rotation and scaling may be done with respect to the
WC origin or the object's center. Objects may be moved
graphically with the mouse or by specifying the
transformation in a pop up window.
- The view of the world as seen in the World Panel may be
manipulated by rotating the World-Coordinate System.
Shortcut options
will be provided to quickly jump to any of the orthogonal views
(straight ahead, side and top).
- The Model will be displayed as a wire frame object that
may be viewed in the View Window Panel using either a parallel
or perspective projection. The view
will be clipped using the Front and Back Clipping Planes, but
no back-face removal will be done.
- Objects that have been moved will be able to be
backed-up to their
former location(s) and/or orientation(s) one step at a time.
- A Reset option may be used to return all objects to their
initial position.
- Matrix Window
- The Matrix Window will display the contents of the
transformation matrices that are used to move an object
and generate the views displayed in the World and View
Window Panels.
- Three types of matrices can be displayed:
- Object transformation matrices. If an object is
selected by clicking on one of its vertices in the
World Panel, that object's last transformation
matrix will be displayed.
- The View-Orientation Matrix, which transforms
from WC to VRC.
- The Shear-Parallel Matrix, which generates the
parallel projection view of a VRC point and adjusts
for an off-center PRP.
- Matrices will be displayed both visually (4 x 4 array of
numbers) and textually
(ie. "Matrix T = translate by (dx = 5, dy = 6, dz = 0)").
- Composite matrices will be displayed such that their
sub-matrices may be viewed and applied individually.
For example, the composite matrix that scales an object
that has been rotated is made up of sub-matrices that
translate the object's center to the WC origin, return it to
its original alignment (which has been changed by the
rotation), scale it, return it to its current alignment and
translate its center back to its current position. Once the
scale has been completed, the user may back the
object up and then apply the sub-matrices
one at a time to see how the scale operation
is implemented.
- The Matrix Window's contents will change dynamically as
the mouse is used to select objects in the World
and View Window Panels.
- View Control Window
- The View Control Window is used to modify the following
view parameters:
- VRP: View Reference Point (shown in WC)
- VPN: View Plane Normal vector (shown in WC)
- VUP: View-Up vector (shown in WC)
- PRP: Projection Reference Point (shown in VRC)
- View Window min: the View Window minimum point
(shown in VRC)
- View window max: the View Window maximum point
(shown in VRC)
- F clip: the Front Clipping Distance (shown in VRC)
- B clip: the Back Clipping Distance (shown in VRC)
- Vertex Window
- The Vertex Window will display a specific vertex of the
model and
show how the various transformation matrices affect that
vertex.
- The vertex that is presented will change
if the student clicks on another vertex of the the model in
the World or View Window Panel.
Project Committee
- Nan Schaller - chairperson
- Larry Coon - reading member
- Peter Anderson
Current Timeline
- Proposal finalized: 5/17/96
- Java code completed: 5/24/96
- HTML user guides completed: 5/24/96
- Formal write-up complete: 7/1/96
- Project defense: 7/20/96