The Core Graphics System in Java

In the fall of 1984 the computer graphics course at UNCA used the Core Graphics System instead of todays OpenGL. At the time that it was taught here at UNCA, the computer science department used Pascal as its principal educational programming language. Since that time, object-oriented languages have replaced Pascal everywhere in the computer field. I decided to program the Core Graphics System in the Java object-oriented programming language so that I might acquire experience in Java and to begin to update my skills in computer graphics.

The Core Graphics System contains many of the same constructs as OpenGL including polygons, filled polygons, rotations, scaling, translations, clipping, parallel projections, and perspective projections. It uses the Painters Algorithm to remove hidden lines and surfaces instead of the Z-Buffer method used in OpenGL. The Painters Algorithm is a faster algorithm than the Z-Buffer and might better be used in Internet applications.

I have grouped all of the procedures of the graphics system into a separate class that may be used in Java applications or applets. The program contained many errors that had to be found and corrected. I used a QuickBasic program to correct the polygon fill procedures. Also, I have added a separate class for rotations, translations, and scaling because those contained in the program work on the normalized coordinates and are not useful for manipulating the images in a way that the user can understand. Since the Java graphics package contains only 16 standard colors, I have added a class of RGB-based colors. It is possible to integrate the Z-Buffer method of hidden line and surface removal and illumination routines into the system and I am considering those for a later projects.

I have learned much about the Java programming language in this project. Also, I have found this project to be more valuable than I expected because of the ability to put graphics applets on the Internet.

Advisor: Susan Reiser

Image: 
Student Name: 
Keith Alan Sellers