The aim of this book is to provide a mathematical background to techniques in computer graphics, to develop a graphics program in C implementing these techniques, and to illustrate the use of C stressing portability and speed. As a result, many students and professionals will find this presentation will give them a thorough understanding of the most fundamental algorithms in graphics programming as well as to provide with them a usable graphics package. Readers are assumed to be moderately familiar with programming though all type definitions, global variables, and macros are described thoroughly before their first applications. Whilst ray-tracing is not covered, the book does cover: hidden surfaces, shadows, reflections, patterns, and modelling curves and surfaces.
Sprache
Verlagsort
Verlagsgruppe
Illustrationen
26
26 s/w Abbildungen
306 p. 26 illus.
Dateigröße
ISBN-13
978-1-4612-2664-2 (9781461226642)
DOI
10.1007/978-1-4612-2664-2
Schweitzer Klassifikation
1 A Basic Course in Spatial Analytic Geometry.- 1.1 Vectors.- 1.2 How to Measure Lengths and Angles.- 1.3 Intersections of Lines and Planes.- 1.4 Translations.- 1.5 Matrices.- 1.6 Rotations.- 2 Projections.- 2.1 Central Projections.- 2.2 The Viewing Pyramid.- 2.3 Coordinate Systems.- 2.4 Back and Forth Between Coordinate Systems.- 2.5 Clipping Algorithms.- 3 How to Describe Three-Dimensional Objects.- 3.1 Data Pools.- 3.2 The 'Polyhedron' and 'Face' Structures.- 3.3 General Convex Objects.- 3.4 Surfaces of Revolution.- 3.5 Surfaces of Translation.- 3.6 The Intersection of Objects.- 4 Graphics Output.- 4.1 Graphics Hardware.- 4.2 System-Dependent Macros and Functions.- 4.3 How to Create Color Palettes and How to Use Them.- 4.4 Wire Frames and Depth Cuing.- 4.5 Shading.- 4.6 Basic Graphics Output Algorithms.- 5 A Fast Hidden-Surface Algorithm.- 5.1 Objects with Convex Outlines.- 5.2 Surfaces of Revolution.- 5.3 Sliced Surfaces.- 5.4 Function Graphs.- 5.5 Priority Among Objects.- 5.6 Final Priority List.- 5.7 The Creation of Object Groups.- 5.8 Bounding Boxes and Separating Planes.- 6 Advanced Features.- 6.1 Convex Hulls.- 6.2 The Intersection of Convex Hulls.- 6.3 Shadows.- 6.4 Reflections.- 6.5 Patterns.- 6.6 Refraction, Transparent Objects.- 7 Hidden-Line Removal.- 7.1 A Quick Screen-Oriented Method.- 7.2 Hidden-Line Removal on Objects with Convex Outlines.- 7.3 Depth Buffering for Visibility.- 8 Mathematical Curves and Surfaces.- 8.1 Parametrized Curves.- 8.2 Classes of Parametrized Surfaces.- 8.3 Surfaces Given by Implicit Equations.- 8.4 Special Curves on Mathematical Surfaces.- 8.5 A More Sophisticated Illumination Model.- 8.6 Shadow Buffering for Shadows.- 9 Spline Curves and Spline Surfaces.- 9.1 Interpolating Curves and Surfaces.- 9.2 Approximating Curvesand Surfaces.- 9.3 Special Curves on Polygonized Surfaces.- 9.4 Spatial Integral Curves.- 9.5 Some Examples of Applications.- 10 Computer-Generated Movies.- 10.1 An Economical Way of Storing a Movie.- 10.2 A Fast Movie Previewer.- 11 The Programming Package on Your Disk.- 11.1 The Contents of the Disk.- 11.2 How to Install the Program Package.- 11.3 How to Use the Program.- 11.4 How to Write Data Files and Animation Files.- 11.5 How Fast Is Your Computer?.- 12 System Dependencies and Other Programming Languages.- 12.1 How to Change the System-Dependent Commands.- 12.2 'Macromania': C, ANSI C or C++ ?.- 12.3 Pointer Arithmetic in PASCAL.- References.