Book description
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
- Copyright
- Preface
- 1. Elementary Concepts
-
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
-
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
- 4. Some Classic Algorithms
-
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.5.1. 5.5.1 Input: A Class for File Input Operations
- 5.5.2. 5.5.2 Obj3D: A Class to Store 3D Objects
- 5.5.3. 5.5.3 Tria: A Class to Store Triangles by Their Vertex Numbers
- 5.5.4. 5.5.4 Polygon3D: A Class to Store 3D Polygons
- 5.5.5. 5.5.5 Canvas3D: An Abstract Class to Adapt the Java Class Canvas
- 5.5.6. 5.5.6 Fr3D: A Frame Class for 3D Programs
- 5.6. A GENERAL PROGRAM FOR WIRE-FRAME MODELS
-
6. Hidden-Line Elimination
- 6.1. LINE SEGMENTS AND TRIANGLES
-
6.2. TESTS FOR VISIBILITY
- 6.2.1. 6.2.1 Test 1 (2D; Figure 6.4)
- 6.2.2. 6.2.2 Test 2 (3D; Figure 6.5)
- 6.2.3. 6.2.3 Test 3 (3D; Figure 6.6)
- 6.2.4. 6.2.4 Test 4 (2D; Figure 6.7)
- 6.2.5. 6.2.5 Test 5 (2D; Figure 6.8)
- 6.2.6. 6.2.6 Test 6 (3D; Figure 6.9)
- 6.2.7. 6.2.7 Test 7 (2D; Figure 6.10)
- 6.2.8. 6.2.8 Test 8 (3D; Figure 6.11)
- 6.2.9. 6.2.9 Test 9 (3D; Figure 6.12)
- 6.2.10. 6.2.10 Recursive Calls
- 6.2.11. 6.2.11 The Arguments of the lineSegment Method
- 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
- 7. Hidden-Face Elimination
- 8. Fractals
- A. Linear Interpolation of 1/z
- B. A Note on Event Handling
- C. File Obj3D.java
- D. Class CvHLines.java
- E. Some Applications
- F. Hints and Solutions to Exercises
-
Bibliography
Product information
- Title: Computer Graphics for Java Programmers, Second Edition
- Author(s):
- Release date: March 2007
- Publisher(s): Wiley
- ISBN: 9780470031605
You might also like
book
OpenGL Programming for Windows 95 and Windows NT
The licensing of OpenGL to many leading computer companies, including Microsoft, has made it possible for …
book
C# Graphics Programming
This Wrox Blox teaches you how to add graphics to C# 2008 applications, explaining fundamental graphics …
book
Java™ Native Interface: Programmer’s Guide and Specification, The
The Java Native Interface (JNI) enables the integration of code written in the Java programming language …
book
Graphic Java™ 1.2, Volume I: AWT, Third Edition
7966F-4 Graphic Java 2 is the most comprehensive guide to the Java Foundation Classes (JFC) available. …