Graph Display Prototype 2005


In a moment, an applet window will pop up to illustrate the prototype! Your browser is ignoring the <APPLET> tag!

This program was written as an Advanced Computer Science project:

            Programming and design: Scott Kaelin, Rudy Clausen

About this program:

            The original assignment was to create a system to perform unit conversions.  The design idea was to make the program completely general, so that the addition of a single, small, class would suffice to add a new conversion into the system, and a request for a conversion would generate a search to find a path from the source unit to the desired unit.  For example, a user might request a conversion from inches to kilometers, and the system would discover a path from inches to feet to miles to kilometers.

            The project evolved to a graphical one in which the key problem became displaying an arbitrary collecting of vertices and edges (called a “graph” in mathematics) while avoiding crossing of edges, overlap of vertices, and, in general, laying the vertices out on the screen in a pleasing manner.

            The current version is merely a demonstration.  Note that moving the mouse over a vertex will cause the name of the unit to pop-up.

Key ideas:

            Programming/Computer Science:

            Use of a class hierarchy (Vertex, NamedVertex)

            Use of packages to separate logic and display code.

            Development of a mathematical tool class (Vector)

            Development of project-specific collections based on standard Collection classes (BucketMap, TwoWayMap)

            Representation of a graph as a linked structure.

            Creation of Exception class (CannotConvertException).

            Recursion to search for paths and analyze the graph for display.



            Layout of Java components to serve needs of the project

            Use of Java “tool tips” capability

            Mouse interaction


March 5, 2005