Computer Graphics for Java Programmers, 2nd Edition

ISBN-13: 978-0-470-03160-5 / ISBN-10: 0-470-03160-3
Leen Ammeraal and Kang Zhang
Published in 2007 by John Wiley.

As the file grjava2e.txt shows, you can obtain the example programs of the book by downloading the file grjava2e.zip.

If you have an Android device, you may be interested in the free app FuncXY. This app is an extension of the example in Appendix E, Section E.5 (Functions of Two Variables), of this book.

Contents


Preface ix

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
Try the demo applets for this 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
Try the demo applets for this 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
Try the demo applet for this 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ézier Curves 170
4.7 B-spline Curve Fitting 130
Exercises 135
Try the demo applets for this 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
Try the demo applets for this 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
Try the demo applets for this 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
Try the demo applets for this chapter.

8 Fractals 249
8.1 Introduction 249
8.2 Koch Curves 250
8.3 String Grammars 264
8.4 Mandelbrot and Julia Sets 264
Exercises 276
Try the demo applets for this chapter.

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
Try the demo applets for this chapter.

Appendix F: Hints and Solutions to Exercises 339

Bibliography 371

Index 373


Back to list of recent books by the same author
Publisher's web page