计算机图形学(OpenGL版)

计算机图形学(OpenGL版)
作 者: Hill Jr
出版社: 科学出版社
丛编项: 世界著名大学核心教材
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 图形学
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《计算机图形学(OpenGL版)》作者简介

内容简介

本书介绍了计算机图形学的原理和主要技术,并以涉及学生和职业人士在网上天天见到的和计算机合成电影的艺术级的图形为例。作者用完整的、综合的手法,写出饿实用性强而又容易理解的内容,它们都是经过精心选择的,优先数学解析,而且重要的概念都加以突出强调。<br>本书引导读者如何将数学转化为程序代码并显示效果。本书内容涵盖了计算机图形领域的最新信息。可作为计算机专业的本科生、研究生教材及相关专业、相关人员的参考用书。

图书目录

Preface

1 Introduction to Computer Graphics

1.1 What is Computer Graphics?

1.2 Where Computer Generated Pictures are Used

1.2.1 Art,Entertainment,and Publishing

1.2.2 Computer Graphics and Image Processing

1.2.3 Monitoring a Process

1.2.4 Displaying Simulations

1.2.5 Computer-aided Design

1.2.6 Scientific Analysis and Visualization

1.3 Elements of Pictures created in Computer Graphics

1.3.1 Polylines

1.3.2 Text

1.3.3 Filled Regions

1.3.4 Raster Images

1.3.5 Representation of Gray Shades and Color for Raster Graphics

1.4 Graphics Display Devices

1.4.1 Line Drawing Displays

1.4.2 Raster displays

1.4.3 Indexed Color and the LUT

1.4.4 Other Raster Display Devices

1.4.5 Hard Copy Raster Devices

1.5 Graphics Input Primitives and Devices

1.5.1 Types of Input Graphics Primitives

1.5.2 Types of Physical Input Devices

1.6 Summary

1.7 Further Reading

2 Getting Started Drawing Figures

2.1 Getting Started Making Pictures

2.1.1 Device-independent Programming,and OpenGL

2.1.2 Windows-based Programming

2.1.3 Opening a Windows for Drawing

2.2 Drawing Basic Graphics Primitives

2.2.1 Examples of Drawing Dot Constellations

2.3 Making Line Drawings

2.3.1 Drawing Polylines and Polygons

2.3.2 Line Drawing using moveto() and lineto()

2.3.3 Drawing Aligned Rectangles

2.3.4 Aspect Ration of an Aligned Rectangle

2.3.5 Filling Polygons

2.3.6 Other Graphics Primitives in OpenGL

2.4 Simple Interaction with the Mouse and Keyboard

2.4.1 Mouse Interaction

2.4.2 Keyboard Interaction

2.5 Summary

2.6 Case Studies

Case Study 2.1 Pseudorandom Clouds of Dots

Case Study 2.2 Introduction to Iterated Function Systems

Case Study 2.3 The Golden Ratio and Other Jewels

Case Study 2.4 Building and Using Polyline Files

Case Study 2.5 Stippling of Lines and Polygons

Case Study 2.6 Polyline Editior

Case Study 2.7 Building and Running Mazes

2.7 Further Reading

3 More Drawing Tools

3.1 Introduction

3.2 World Windows and Viewports

3.2.1 The Mapping from the Windows to the Viewport

3.2.2 Setting the Windows and Viewport Automatically

3.3 Clipping Lines

3.3.1 Clipping a Line

3.3.2 The Cohen-Sutherland Cipping Algorithm

3.4 Developing the Canvas Class

3.4.1 Some useful Supporting Classes

3.4.2 Declaration of Class Canvas

3.4.3 Implementation of Class Canvas

3.5 Relative Drawing

3.5.1 Developing moveRel() and lineRel()

3.5.2 TurleGraphics

3.6 Figures Based on Regular Polygons

3.6.1 The Regular Polygons

3.6.2 Variations on n-Gons

3.7 Drawing Circles and Arcs

3.7.1 Drawing arcs

3.8 Using the Parametric Form of a Curve

3.8.1 Parametric Forms for Curves

3.8.2 Drawing Curves Represented Parametrically

3.8.3 Superellipses

3.8.4 Polar Coordinate Shapes

3.8.5 3D Curves

3.9 Summary

3.10 Case Studies

Case Study 3.1 Studying the Logistic Map and Simulation of Chaos

Case Study 3.2 Implementation of the Cohen-Sutherland Clipper in C/C++

Case Study 3.3 Implementing Canvas for Turbo C++

Case Study 3.4 Drawing Arches

Case Study 3.5 Some Figures Used in Physics and Engineering

Case Study 3.6 Tilings

Case Study 3.7 Playful Variations on a Theme

Case Study 3.8 Circles Rolling around Circles

Case Study 3.9 Superellipses

3.11 Further Reading

4 Vector Tools for Graphics

4.1 Introduction

4.2 Review of Vectors

4.2.1 Operations with Vectors

4.2.2 Linear combinations of Vectors

4.2.3 The Magnitude of a Vector,and Unit Vectors

4.3 The Dot Product

4.3.1 Properties of the Dot Product

4.3.2 The Angle Between two Vectors

4.3.3 The Sign of b-c;Perpendicularity

4.3.4 The 2D“Perp”Vector

4.3.5 Orthogonal Projections,and the Distance from a Point to a Line

4.3.6 Applications of Projection:Reflections

4.4 The Cross Product of Two Vectors

4.4.1 Geometric Interpretation of the Cross Product

4.4.2 Finding the Normal to a Plane

4.5 Representations of Key Geometric Objects

4.5.1 Coordinate Systems and Coordinate Frames

4.5.2 Affine Combinations of Points

4.5.3 Linear Interpolation of Two Points

4.5.4 “Tweening”for Art and Animation

4.5.5 Preview:Quadratic and Cubic Tweening,and Bezier Curves

4.5.6 Representing Lines and Planes

4.6 Finding the Intersection of Two Line Segments

4.6.1 Application of Line Intersections:the Circle Through Three Points

4.7 Intersections of Lines with Planes,and Clipping

4.8 Polygon Intersection Problems

4.8.1 Working with Convex Polygons and Clipping

4.8.2 Polygon Intersections and Clipping for Convex Polygons

4.8.3 The Cyrus-Beck Clipping Algorithm

4.8.4 Clipping against Arbitrary Polygons

4.8.5 More Advanced Clipping

4.9 Summary

4.10 Case Studies

Case Study 4.1 Animation with Tweening

Case Study 4.2 Circles Galore

Case Study 4.3 Is point Q inside Polygon P?

Case Study 4.4 Reflections in a Chamber(2D Ray Tracing)

Case Study 4.5 Cyrus-Beck Clipping

Case Study 4.6 Clipping a Polygon Against a Convex Polygon:Sutherland-Hodgman Clipping

Case Study 4.7 Clipping a Polygon against another:Weiler Atherton Clipping

Case Study 4.8 Boolean Operations on Polygons

4.11 Further Reading

5 Transformations of Objects

5.1 Introduction

5.2 Introduction to Transformations

5.2.1 Transforming Points and Objects

5.2.2 The Affine Transformations

5.2.3 Geometric Effects of elementary 2D Affine Transformations

5.2.4 The Inverse of an Affine Transformation

5.2.5 Composing Affine Transformations

5.2.6 Examples of Composing 2D Transformations

5.2.7 Some Useful Properties of Affine Transformations

5.3 3D Affine Transformations

5.3.1 The Elementary 3D Transformations

5.3.2 Composing 3D Affine Transformatios

5.3.3 Combining Rotations

5.3.4 Summary of Properties of 3D Affine Transformations

5.4 Changing Coordinate Systems

5.5 Using Affine Transformations in a Program

5.5.1 Saving the CT for Late Use

5.6 Drawing 3D Scenes with OpenGL

5.6.1 An Overview of the Viewing Process and the Graphics Pipeline

5.6.2 Some OpenGL tools for Modeling and Viewing

5.6.3 Drawing Elementary Shapes Provided by OpenGL

5.6.4 Reding a Scene Description from a file

5.7 Summary

5.8 Case Studies

Case Study 5.1 Doing Your Own Transforming by the CT in Canvas

Case Study 5.2 Draw the Star of Fig 5.39 Using Multiple Rotations

Case Study 5.3 Decomposing a 2D Affine Transformation

Case Study 5.4 Generalized 3D Shears

Case Study 5.5 Rotation About an Axis:the Constructive Approach

Case Study 5.6 Decomposing 3D Affine Transformations

Case Study 5.7 Drawing 3D Scenes Described by SDL

5.9 Further Reading

6 Modeling Shapes with Polygonal Meshes

6.1 Introduction

6.2 Introduction to Solid Modeling with Polygonal Meshes

6.2.1 Defining a Polygonal Mesh

6.2.2 Finding the Normal Vectors

6.2.3 Properties of Meshes

6.2.4 Mesh Models for Nonsolid Objects

6.2.5 Working with Meshes in a Program

6.3 Polyhedra

6.3.1 Prisms and Antiprisms

6.3.2 The Platonic Solids

6.3.3 Other Interesting Polyhedra

6.4 Extruded Shapes

6.4.1 Creating Prisms

6.4.2 Arrays of Extruded Prisms:“Bricklaying”

6.4.3 Extrusions with a “Twist”

6.4.4 Building Segmented Extrusion:Tubes and Snakes

6.4.5 “Discretely”Swept surfaces of Revolution

6.5 Mesh Approximations to Smooth Objects

6.5.1 Representations for Surfaces

6.5.2 The Normal Vector to a Surface

6.5.3 The Effect of an Affine Transformation

6.5.4 Three“Generic”Shapes:the Sphere,Cylinder,and Cone

6.5.5 Forming a Polygonal Mesh for a Curved Surface

6.5.6 Ruled Surfaces

6.5.7 Surfaces of Revolution

6.5.8 The Quadric Surfaces

6.5.9 The Superquadrics

6.5.10 Tubes Based on 3D Curves

6.5.11 Surfaces Based on Explicit Functions of Two Variables

6.6 Summary

6.7 Case Studies

Case Study 6.1 Meshes Stored in Files

Case Study 6.2 Derivation of the Newell Method

Case Study 6.3 The Prism

Case Study 6.4 Prism Arrays and Extruded Quad-strips

Case Study 6.5 Tubes and Snakes Based on a Parametric Curve

Case Study 6.6 Building Discrete-Stepped Surfaces of Revolution

Case Study 6.7 On Edge lists and Wire-frame Models

Case Study 6.8 Vaulted Ceilings

Case Study 6.9 On Platonic Solids

Case Study 6.10 On Archimedian Solids

Case Study 6.11 Algebraic Form for the quadric Surfaces

Case Study 6.12 Superquadric Scenes

Case Study 6.13 Drawing Smooth parametric Surfaces

Case Study 6.14 Taper,Twist,Bend,and Squash It

6.8 Further Reading

7 Three-Dimensional Viewing

7.1 Introduction

7.2 The Camera Revisited

7.2.1 Setting the View Volume

7.2.2 Positioning and Pointing the Camera

7.3 Building a Camera in a Program

7.3.1 “Flying”the Camera

7.4 Perspective Projections of 3D Objects

7.4.1 Perspective Projection of a Point

7.4.2 Perspective Projection of a Line

7.4.3 Incorporating Perspective in the Graphics Pipeline

7.5 Producing Stereo Views

7.6 Taxonomy of Projections

7.6.1 One-,Two-,and Three-Point Perspective

7.6.2 Types of Parallel Projections

7.7 Summary

7.8 Case Studies

Case Study 7.1 Flying a Camera through a Scene

Case Study 7.2 Stereo Views

Case Study 7.3 Creating Parallel Projections

Case Study 7.4 Do-it-yourself Viewing(As if OpenGL were Not Available)

Case Study 7.5 Removal of Back Face for Greater Efficiency

7.9 Further Reading

8 Rendering Faces for Visual Realism

8.1 Introduction

8.2 Introduction to Shading Models

8.2.1 Geometric Ingredients for Finding Reflected Light

8.2.2 Computing the Diffuse Component

8.2.3 Specular Reflection

8.2.4 The Role of Ambinent Light

8.2.5 Combining Light Contributions

8.2.6 Adding Color

8.2.7 Shading and the Graphics Pipeline

8.2.8 Using Light Sources in OpenGL

8.2.9 Working with Material Properties in OpenGL

8.2.10 Shading of Scenes Specified by SDL

8.3 Flat shading and Smooth shading

8.3.1 Flat Shading

8.3.2 Smooth shading

8.4 Removing Hidden Surfaces

8.4.1 The Depth Buffer Approach

8.5 Adding Texture to Faces

8.5.1 Pasting the Texture onto a Flat Surface

8.5.2 Rendering the Texture

8.5.3 What Does a Texture Modulate?

8.5.4 A Texture Example Using OpenGL

8.5.5 Wrapping Texture on Curved Surfaces

8.5.6 Reflection Mapping

8.6 Adding Shadows of Objects

8.6.1 Shadows as Texture

8.6.2 Creating Shadows with the Use of a Shadow Buffer

8.7 Summary

8.8 Case Studies

Case Study 8.1 Creating Shaded Objects using OpenGL

Case Study 8.2 The Do-it-Yourself Graphics Pipeline

Case Study 8.3 Add Polygon Fill and Depth-Buffer Removal of Hidden Sufaces

Case Study 8.4 Rendering Texture

Case Study 8.5 Applying Procedural 3D Textures

Case Study 8.6 Drawing Shadows

Case Study 8.7 Extending SDL to Include Texturing

8.9 Further Reading

9 Approaches to Infinity

9.1 Introduction

9.2 Fractals and Self-Similarity

9.2.1 Successive Refinement of Curves

9.2.2 Drawing Koch Curves and Snowflakes

9.2.3 Fractional Dimension

9.3 String Production and Peano Curves

9.3.2 Procucing Recursively and Drawing in a Program

9.3.3 Allowing Branching

9.4 Tiling the Plane

9.4.1 Monohedral Tilings

9.4.2 dihedral Tilings

9.4.3 Drawing Tilings

9.4.4 Reptiles

9.5 Creating an Image by Means of Iterated Functions Systems

9.5.1 An Experimental Copier

9.5.2 Some Underlying theory of the Copying Process

9.5.3 Drawing the k-th Iterate

9.5.4 The Chaos Game

9.5.5 Finding the IFS,Fractal Image Compression

9.6 The Mandelbrot Set

9.6.1 Mandelbrot Sets and Iterated Functions Systems

9.6.2 Defining the Mandelbrot Set

9.6.3 Computing whether the point c is in the Mandelbrot Set

9.6.4 Drawing the Mandelbrot Set

9.6.5 Some Notes on the Mandelbrot Set

9.7 Julia Sets

9.7.1 The Filled-in Julia Set Kc

9.7.2 Drawing Filled-in Julia Sets

9.7.3 Some Notes on Fixed points and Basins of Attraction

9.7.4 The Julia Set Jc

9.8 Random Fractals

9.8.1 Fractalizing a Segment

9.8.2 Controlling the Spectral Density of the Fractal Curve

9.9 Summary

9.10 Case Studies

Case Study 9.1 Drawing String Productions

Case Study 9.2 Drawing Snowflakes and Reptiles

Case Study 9.3 Playing the Chaos Game

Case Study 9.4 Drawing Orbits in the Mandelbrot Set

Case Study 9.5 Creating Pictures of the Mandelbrot Set

Case Study 9.6 Creating Pictures of Julia Sets

Case Study 9.7 Nonperiodic Tilings;Penrose Tiles

Case Study 9.8 Fractalizing Curves

Case Study 9.9 Modeling Fractalized Mountains

9.11 Further Reading

10 Tools for Raster Displays

10.1 Introduction

10.2 Manipulating Pixmaps

10.2.1 Operations of Interest for Pixmaps

10.2.2 Useful Data Types for Pixmaps

10.2.3 Scaling and Rotating Images

10.3 Combining Pixmaps

10.3.1 The Read-Modify-Write Cycle

10.3.2 The Alpha Channel and Image Blending

10.3.3 Logical Combinations of Pixmaps

10.3.4 The BitBlt operation

10.4 Do-It-Yourself Line Drawing:Bresenham's Algorithm

10.4.1 Bresenham's Line-Drawing:Bresenham's Algorithm

10.5 Bresenham's Line-Drawing Algorithm

10.5.1 Defining and Filling Regions of Pixels

10.5.2 Defining Regions

10.5.3 Pixel-Defined Regions

10.5.4 A Recursive Flood-Fill Algorithm

10.5.5 Filling Regions with Patterns

10.6 Manipulating Symbolically Defined Regions

10.6.1 Rectangle-defined Regions

10.6.2 Path-defined Regions

10.7 Filing Polygon-Defined Regions

10.7.1 Which Pixels on an Edge Belong to a Polygon?

10.7.2 Improving the Algorithm's Performance

10.8 Aliasing;Antialiasing Techniques

10.8.1 Antialiasing Techniques

10.8.2 Antialiasing of Texture

10.8.3 Antialiasing Using OpenGL

10.9 Creating More Shades and Colors

10.9.1 Ordered Dither

10.9.2 Error Diffusion

10.10 Summary

10.11 Case Studies

Case Study 10.1 Reading and Displaying BMP Image Files

Case Study 10.2 Dissolving Between Two Pixmaps with OpenGL

Case Study 10.3 Region Filling Based on Runs

Case Study 10.4 Working with the“Shape”Data Structure

Case Study 10.5 Chain Coding of Shapes

Case Study 10.6 Filling“Horizontally Convex”Polygons

Case Study 10.7 General Polygon Filling

Case Study 10.8 Error Diffusion

10.12 Further Reading

11 Curve and Surface Design

11.1 Introduction

11.1.1 Parametric Curves as Trajectories

11.1.2 Smoothness of Motion

11.2 Describing Curves by Means of Polynomials

11.3 On Interactive Curve Design

11.4 Bezier Curves for Curve Design

11.4.1 The de Casteljau Algorithm

11.5 Properties of Bezier Curves

11.6 Finding Better Blending Functions

11.6.1 The Problem of Local Control

11.6.2 Wish List for a Set of Blending Functions

11.6.3 Piecewise Polynomial Curves and Splines

11.6.4 Building a set of Bending Functions Out of g(t)

11.6.5 Spline Curves and Basis Functions

11.7 The B-Spline Basis Functions

11.7.1 Definition of B-Spline Functions

11.7.2 Using Multiple Knots in the Knot Vector

11.7.3 Open B-Spline Curves:Standard Knot Vector

11.8 Useful Properties of B-Spline Curves for Design

11.8.1 Using Multiple Control Points

11.9 Rational Splines and NURBS Curves

11.10 A Glimpse at Interpolation

11.10.1 Interpolation Using Piecewise Cubic Polynomials

11.10.2 Hermite Interpolation

11.10.3 The Natural Cubic Spline

11.10.4 Computing the Slopes in Cubic Interpolation

11.10.5 Specifying the Tangent Vectors Interactively

11.11 Modeling Curved Surfaces

11.11.1 Ruled Surfaces Based on B-Splines

11.11.2 Surfaces of Revolution Based on B-Splines

11.11.3 Bezier Surface Patches

11.11.4 Patching Together Bezier Patches

11.11.5 B-Spline Patches

11.11.6 NURBS Surfaces

11.12 Summary

11.13 Case Studies

Case Study 11.1 A Potpourri of Interesting parametric Curves

Case Study 11.2 ElliptiPool

Case Study 11.3 Bezier Curves

Case Study 11.4 A Quadratic Spline-Curve Generator

Case Study 11.5 Building a Spline-Curve Editor

Case Study 11.6 Interpolation of Control Points with B-Splines

Case Study 11.7 Interpolating with Cubic Polynomials

Case Study 11.8 The Venerable Teapot

Case Study 11.9 Invariance to Projective Transformations

Case Study 11.10 Drawing NURBS Patches

11.14 Further Reading

12 Color Theory

12.1 Introduction

12.2 Describing Colors

12.2.1 Dominant wavelength

12.2.2 Color Matching

12.3 The International Commission on Illumination Standard

12.3.1 Constructing the CIE Chart

12.3.2 Using the CIE Chromaticity Diagram

12.3.3 Color Gamuts

12.4 Color Spaces

12.4.1 The RGB and CMY Color Spaces

12.4.2 Additive and Subtractive Color Systems

12.4.3 The HLS Color Model

12.5 Color Quantization

12.5.1 Uniform Quantization

12.5.2 The Popularity Algorithm

12.5.3 The Median-cut Algorithm

12.5.4 Octree Quantization

12.6 Summary

12.7 Chapter Exercises

12.8 Case Studies

Case Study 12.1 Drawing the CIE Chart

Case Study 12.2 Drawing RGB Space

Case Study 12.3 HSV to RGB

Case Study 12.4 Uniform Color Quantization

Case Study 12.5 Popularity Color Quantization

Case Study 12.6 Median Cut Color Quantization

Case Study 12.7 Octree Color Quantization

12.9 Further Reading

13 Hidden Surface Removal

13.1 Introduction

13.1.2 Object Precision versus Image Precision Approaches

13.1.3 Description of the Polygon Mesh Data

13.2 The Depth Buffer Algorithm Revisited

13.3 List Priority HSR Methods

13.3.1 The Heedless Painter's Algorithm

13.3.2 HSR Using Binary Space Parition Trees

13.3.3 The Depth Sort Algorithm

13.4 A Scan-Line HSR Method

13.5 Area Subdivision Approaches

13.5.1 Quadrant Subdivision

13.5.2 Other Definitions of a Simple Region

13.6 On Hidden Line Removal Methods

13.6.1 The Geometric Testing in edgeTest()

13.7 HSR Methods for Curved Surfaces

13.8 Summary

13.9 Case Studies

Csae Study 13.1 Testing the Painter's Algorithm

Csae Study 13.2 Test and Split

Csae Study 13.3 Using BSP Trees for HSR

Csae Study 13.4 Using Depth Sorting for HSR

Csae Study 13.5 Working with a Scan-Line HSR Approach

Csae Study 13.6 Drawing with the Warnock Algorithm

Csae Study 13.7 The Edge Stack Algorithm for HLR

13.10 Further Reading

14 Ray Tracing

14.1 Introduction

14.2 Setting Up the Geometry of Gay Tracing

14.3 Overview of the Ray-Tracing Process

14.4 Intersection of a Ray with an Object

14.4.1 Intersection of a Ray with a Generic Plane

14.4.2 Intersection with a Generic Sphere

14.4.3 Intersection of the Ray with Transformed Objects

14.5 Organizing a Ray Tracer Application

14.5.1 A Routine to Compute Ray-Sphere Intersections

14.5.2 A Complete Ray Tracer for Emissive-Sphere Scenes

14.6 Intersecting Rays with Other Primitives

14.6.1 Intersecting with a Square

14.6.2 Intersecting with a Tapered Cylinder

14.6.3 Intersecting with a Cube(or any Convex Polyhedron)

14.6.4 Adding More Primitives

14.7 Drawing Shaded Pictures of Scenes

14.7.1 Finding the Normal at the Hit Spot

14.7.2 Coloring Objects According to their Surface Materials

14.7.3 Physically-based Shading Models:Cook-Torrance Shading

14.8 Adding Surface Texture

14.8.1 Solid Texture

14.8.2 Pasting Images onto Surfaces

14.8.3 Antialiashing Ray Tracings

14.9 Using Extents

14.9.1 Box and Sphere Extents

14.9.2 Using Projection Extents

14.10 Adding Shadows for Greater Realism

14.11 Reflections and Transparency

14.11.1 The Refraction of Light

14.11.2 Dealing with Refraction in shade()

14.12 Compound Objects:Boolean Operations on Objects

14.12.1 Ray Tracing CSG Objects

14.12.2 Data Structure for Boolean Objects

14.12.3 Intersecting Rays with Boolean Objects

14.12.4 Building and Using Extents for CSG Object

14.13 Summary

14.14 Case Studies

Case Study 14.1 An Emissive Ray Tracer

Case Study 14.2 A Renaissance Ray Tracer

Case Study 14.3 Implementing Shadows in a Ray Tracer

Case Study 14.4 Using Extents to Speed up Ray Tracing

Case Study 14.5 Ray Tracing with 3D Textures

Case Study 14.6 antialiasing

Case Study 14.7 Ray Tracing Other Primitives

Case Study 14.8 A 2D Ray Tracer to Explore Refraction

Case Study 14.9 Reflected and Refracted Light

Case Study 14.10 Ray Tracing Boolean Combinations of Objects

14.15 Further Reading

Appendixes

1 Graphics Tools-Obtaining OpenGL

A1.1.1 Obtaining and Installing OpenGL

2 Some mathematics for Computer Graphics

A2.1 Some Key Definitions for Matrices and their Operations

A2.1.1 Mainipulations with Matrices

A2.1.2 Multiplying Two Matrices

A2.1.3 Partitioning a Matrix

A2.1.4 The Determinant of a Matrix

A2.1.5 The Inverse of a Matrix

A2.2 Some Properties of Vectors and their Operations

A2.2.1 The Perp of a Vector,the Perp Dot Product

A2.2.2 The Triple Scalar Product

A2.2.3 The Triple Vector product and Products of Four Vectors

A2.3 The Arithmetic of Complex Numbers

A2.4 Spherical Coordinates and Direction Cosines

3 Some Useful Classes and Utility Routines

Classes for 2D Graphis

RGBPixmap Class

The Scene and Supporting Classes

Noise Class

Some Classes that are Useful for Ray Tracing

4 An Introduction to POSTSCRIPT

A4.1 About the POSTSCRIPT Language

A4.1.1 Some Preliminaries

A4.1.2 POSTSCRIPT is“Stackbased”

A4.1.3 Some Stack Operators:pop,dup,exch,and clear

A4.1.4 More Advanced Stack Operators

A4.1.5 Some Arithmetic Operators

A4.2 Graphics Operators in POSTSCRIPT

A4.2.1 Coordinate Systems and Transformations

A4.2.2 Path Construction Verbs

A4.2.3 Arcs of Circles

A4.2.4 Used for Painting Verbs

A4.2.5 Coordinate Transformations

A4.2.6 Graphics State Operators

A4.3 Drawing Text in POSTSCRIPT

A4.4 Defining New Variables and Procedures

A4.4.1 Defining Variables

A4.4.2 Defining Procedures

A4.4.3 A Simple Form of Iteration,Using repeat

A4.5 Decisions and Iterations

A4.5.1 Verbs that Take Boolean Values for Arguments

A4.5.2 Making Decisions

A4.5.3 Iterating

A4.6 Printing Values

A4.7 Drawing Gray-scale Image

5 An Introduction to SDL

A5.1 Syntax of SDL

A5.2 Macros in SDL

A5.3 Extending SDL

References

Index