Next: How to Learn Graphics Up: Computer Science 333 Computer Previous: Computer Science 333 Computer

Subject Matter

Twenty years ago, graphics was a specialty field within computer science, of interest only to developers of video games (at the low end) and powerful CAD/CAM packages (at the high end). But with the release of the Apple Macintosh and then Microsoft Windows, graphical user interfaces became common for computers at all levels. And the widespread availability of microcomputers and workstations with sufficient processing power has brought formerly high-end drafting, painting, simulation, and animation capabiilities within the reach of home and small-business users. The field of computer graphics has become mainstream, and an essential part of the training of a computer scientist.

In past years this courses has concentrated on the mathematical transformations necessary for computer graphics, particularly 3-D rendering: scan conversion, rotation, translation, perspective projection, specular and diffuse reflection off a surface, refraction, transparency, ray tracing, edge smoothing, etc. However, very few people today actually write code to do all that -- most people buy a commercial graphics package and simply call it -- so while that was an interesting collection of topics, I'm putting a higher priority this year on programming graphical user interfaces. Students are still expected to be comfortable with geometric concepts, and to have completed a course in linear algebra and matrices.

The techniques we discuss this semester can be carried out in almost any programming language (although some of them are easier in an object-oriented language, or a language that allows the passing of functions as parameters to other functions). But in the interest of consistency and standardization, I plan to work in Java. Its syntax is similar to that of C and C++, its object model is similar to (though simpler than) that of C++, and it has a standardized API for both low-level graphics (lines, circles, etc.) and predefined graphical user interface components (buttons, menus, etc.)


Next: How to Learn Graphics Up: Computer Science 333 Computer Previous: Computer Science 333 Computer

Stephen Bloch
Thu Sep 2 13:04:41 EDT 1999