TalkingTech
The view from the top of IT with TechWorld Editor Rohan Pearce
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.
Kang Zhang is a Professor in Computer Science and Director of Visual Computing Lab at the University of Texas at Dallas. He received his B.Eng. in Computer Engineering from the University of Electronic Science and Technology, China, in 1982; and Ph.D. from the University of Brighton, UK, in 1990. He held academic positions in the UK and Australia, prior to joining UTD. Zhang's current research interests are in the areas of visual languages, graphical visualization, and Web engineering; and has published over 130 papers in these areas. He has taught computer graphics and related subjects at both graduate and undergraduate levels for many years. Zhang was also an editor of two books on software visualization.
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.
Exercises.
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.
Exercises.
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.
Exercises.
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.
Exercises.
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.
Exercises.
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.
Exercises.
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.
Exercises.
Chapter 8: Fractals.
8.1 Introduction.
8.2 Koch Curves.
8.3 String Grammars.
8.4 Mandelbrot and Julia Sets.
Exercises.
Appendix A – Linear Interpolation of 1/z.
Appendix B – A Note on Event Handling.
Appendix C – File Obj3D.java.
Appendix D – Class CvHLines.java.
Appendix E – Some Applications.
Appendix F – Hints and Solutions to Exercises.
Bibliography.
Index.
Recent comments
0 minutes ago
2 hours, 2 minutes ago
2 hours, 58 minutes ago
7 hours, 40 minutes ago
15 hours, 58 minutes ago
1 day, 2 hours ago
1 day, 5 hours ago
1 day, 9 hours ago
1 day, 12 hours ago
1 day, 13 hours ago