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.
Leen Ammeraal is a retired lecturer of Hogeschool Utrecht, The Netherlands, where he was employed from 1977 to 1998. He has a degree (ir.) in mathematics at University of Technology Delft, The Netherlands. He worked as a programmer and mathematician at Akzo Research and Engineering, Arnhem, The Netherlands, from 1961 to 1972 and did research work on compilers from 1972 to 1977 at Mathematical Centre, Amsterdam. He wrote many books for Wiley (as well as for the Dutch publisher Academic Service). Some of his Wiley books have been translated into other languages (Japanese, Russian, Italian, French, German, Greek, Danish, Portuguese, Bulgarian).
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.
1. Introduction to Computer Graphics 2. Applied Geometry 3. 2D and 3D Transformations 4. Classic 2D Algorithms 5. Perspective 6. Hidden-Line Elimination 7. Hidden-Face Elimination 8. Fractals and Self-Similarity
Show moreA 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.
Leen Ammeraal is a retired lecturer of Hogeschool Utrecht, The Netherlands, where he was employed from 1977 to 1998. He has a degree (ir.) in mathematics at University of Technology Delft, The Netherlands. He worked as a programmer and mathematician at Akzo Research and Engineering, Arnhem, The Netherlands, from 1961 to 1972 and did research work on compilers from 1972 to 1977 at Mathematical Centre, Amsterdam. He wrote many books for Wiley (as well as for the Dutch publisher Academic Service). Some of his Wiley books have been translated into other languages (Japanese, Russian, Italian, French, German, Greek, Danish, Portuguese, Bulgarian).
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.
1. Introduction to Computer Graphics 2. Applied Geometry 3. 2D and 3D Transformations 4. Classic 2D Algorithms 5. Perspective 6. Hidden-Line Elimination 7. Hidden-Face Elimination 8. Fractals and Self-Similarity
Show morePreface ix
CHAPTER 1 Elementary Concepts 1
1.1 Lines, Coordinates and Pixels 2
1.2 The Boundaries of Filled Regions 7
1.3 Logical Coordinates 8
1.4 Anisotropic and Isotropic Mapping Modes 14
1.5 Defining a Polygon by Using the Mouse 21
Exercises 26
CHAPTER 2 Applied Geometry 31
2.1 Vectors 32
2.2 Inner Product 34
2.3 Determinants 34
2.4 Vector Product 37
2.5 The Orientation of Three Points 38
2.6 Polygons 41
2.7 The Area of a Polygon 42
2.8 Point-in-Triangle Test 44
2.9 Point-in-Polygon Test 45
2.10 Point-on-Line Test 47
2.11 Distance Between a Point and a Line 50
2.12 Projection of a Point on a Line 51
2.13 Triangulation of Polygons 53
Exercises 58
CHAPTER 3 Geometrical Transformations 63
3.1 Matrix Multiplication 64
3.2 Linear Transformations 65
3.3 Translations 71
3.4 Homogeneous Coordinates 71
3.5 Inverse Transformations and Matrix Inversion 72
3.6 Rotation About an Arbitrary Point 74
3.7 Changing the Coordinate System 78
3.8 Rotations About 3D Coordinate Axes 79
3.9 Rotation About an Arbitrary Axis 80
Exercises 88
CHAPTER 4 Some Classic Algorithms 91
4.1 Bresenham’s Algorithm for Line Drawing 92
4.2 Doubling the Line-Drawing Speed 97
4.3 Circles 102
4.4 Cohen–Sutherland Line Clipping 107
4.5 Sutherland–Hodgman Polygon Clipping 113
4.6 B'ezier Curves 120
4.7 B-Spline Curve Fitting 130
Exercises 135
CHAPTER 5 Perspective 139
5.1 Introduction 140
5.2 The Viewing Transformation 141
5.3 The Perspective Transformation 146
5.4 A Cube in Perspective 148
5.5 Some Useful Classes 152
5.6 A General Program for Wire-Frame Models 168
Exercises 174
CHAPTER 6 Hidden-Line Elimination 177
6.1 Line Segments and Triangles 178
6.2 Tests for Visibility 179
6.3 Specification and Representation of 3D Objects 190
6.4 Holes and Invisible Line Segments 192
6.5 Individual Faces and Line Segments 194
6.6 Automatic Generation of Object Specification 198
6.7 Hidden-Line Elimination with HP-GL Output 207
6.8 Implementation 209
Exercises 213
CHAPTER 7 Hidden-Face Elimination 219
7.1 Back-Face Culling 220
7.2 Coloring Individual Faces 225
7.3 Painter’s Algorithm 226
7.4 Z-Buffer Algorithm 234
Exercises 246
CHAPTER 8 Fractals 249
8.1 Introduction 249
8.2 Koch Curves 250
8.3 String Grammars 253
8.4 Mandelbrot and Julia Sets 264
Exercises 276
APPENDIX A Linear Interpolation of 1/z 277
APPENDIX B A Note on Event Handling 281
APPENDIX C File Obj3D.java 287
APPENDIX D Class CvHLines.java 293
APPENDIX E Some Applications 301
E.1 Platonic Solids 301
E.2 Sphere Representations 312
E.3 A Torus 319
E.4 Beams in a Spiral 323
E.5 Functions of Two Variables 326
APPENDIX F Hints and Solutions to Exercises 339
Bibliography 371
Index 373
Leen Ammeraal is a retired lecturer of Hogeschool Utrecht, The Netherlands, where he was employed from 1977 to 1998. He has a degree (ir.) in mathematics at University of Technology Delft, The Netherlands. He worked as a programmer and mathematician at Akzo Research and Engineering, Arnhem, The Netherlands, from 1961 to 1972 and did research work on compilers from 1972 to 1977 at Mathematical Centre, Amsterdam. He wrote many books for Wiley (as well as for the Dutch publisher Academic Service). Some of his Wiley books have been translated into other languages (Japanese, Russian, Italian, French, German, Greek, Danish, Portuguese, Bulgarian). 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.
![]() |
Ask a Question About this Product More... |
![]() |