Computer Graphics for Java Programmers, 2/e (Paperback)

Leen Ammeraal, Kang Zhang





A great many varied and interesting visual effects can be achieved with computer graphics, for which a fundamental understanding of the underlying mathematical concepts – and a knowledge of how they can be implemented in a particular programming language – is essential.

Computer Graphics for Java Programmers, 2nd edition covers elementary concepts in creating and manipulating 2D and 3D graphical objects, covering topics from classic graphics algorithms to perspective drawings and hidden-line elimination. 

Completely revised and updated throughout, the second edition of this highly popular textbook contains a host of ready-to-run-programs and worked examples, illuminating general principles and geometric techniques. Ideal for classroom use or self-study, it provides a perfect foundation for programming computer graphics using Java.

Table of Contents

Chapter 1: Elementary Concepts.

1.1 Lines, Coordinates and Pixels.

1.2 The Boundaries of Filled Regions.

1.3 Logical Coordinates.

1.4 Anisotropic and Isotropic Mapping Modes.

1.5 Defining a Polygon by Using the Mouse.


Chapter 2: Applied Geometry.

2.1 Vectors.

2.2 Inner Product.

2.3 Determinants.

2.4 Vector Product.

2.5 The Orientation of Three Points.

2.6 Polygons.

2.7 The Area of a Polygon.

2.8 Point-in-Triangle Test.

2.9 Point-in-Polygon Test.

2.10 Point-on-Line Test.

2.11 Distance Between a Point and a Line.

2.12 Projection of a Point on a Line.

2.13 Triangulation of Polygons.


Chapter 3: Geometrical Transformations.

3.1 Matrix Multiplication.

3.2 Linear Transformations.

3.3 Translations.

3.4 Homogeneous Coordinates.

3.5 Inverse Transformations and Matrix Inversion.

3.6 Rotation About an Arbitrary Point.

3.7 Changing the Coordinate System.

3.8 Rotations About 3D Coordinate Axes.

3.9 Rotation About an Arbitrary Axis.


Chapter 4: Some Classic Algorithms.

4.1 Bresenham’s Algorithm for Line Drawing.

4.2 Doubling the Line-Drawing Speed.

4.3 Circles.

4.4 Cohen–Sutherland Line Clipping.

4.5 Sutherland–Hodgman Polygon Clipping.

4.6 B´ezier Curves.

4.7 B-Spline Curve Fitting.


Chapter 5: Perspective.

5.1 Introduction.

5.2 The Viewing Transformation.

5.3 The Perspective Transformation.

5.4 A Cube in Perspective.

5.5 Some Useful Classes.

5.6 A General Program for Wire-Frame Models.


Chapter 6: Hidden-Line Elimination.

6.1 Line Segments and Triangles.

6.2 Tests for Visibility.

6.3 Specification and Representation of 3D Objects.

6.4 Holes and Invisible Line Segments.

6.5 Individual Faces and Line Segments.

6.6 Automatic Generation of Object Specification.

6.7 Hidden-Line Elimination with HP-GL Output.

6.8 Implementation.


Chapter 7: Hidden-Face Elimination.

7.1 Back-Face Culling.

7.2 Coloring Individual Faces.

7.3 Painter’s Algorithm.

7.4 Z-Buffer Algorithm.


Chapter 8: Fractals.

8.1 Introduction.

8.2 Koch Curves.

8.3 String Grammars.

8.4 Mandelbrot and Julia Sets.


Appendix A – Linear Interpolation of 1/z.

Appendix B – A Note on Event Handling.

Appendix C – File

Appendix D – Class

Appendix E – Some Applications.

Appendix F – Hints and Solutions to Exercises.