《計算機圖形學(C語言版)第2版》是2004年2月由清華大學出版社出版的圖書,作者是DonaldHearn,M.PaulineBaker。
基本介紹
- 書名:計算機圖形學(C語言版)第2版
- 作者:Donald Hearn, M. Pauline Baker
- ISBN:9787302080848
- 頁數:652頁
- 定價:69元
- 出版社:清華大學出版社
- 出版時間:2004-2-27
- 裝幀:平裝
內容簡介
本書既可作為本科生和研究生的教材,也可作為圖形學專業人員的參考書。
圖書前言
Software Standards
Significant improvements in graphics software standards have been developed since the acceptance of the first graphics package, the Graphical Kernel System (GKS), by the International Standards Organization (ISO) and the American National Standards Institute (ANSI). The Programmer's Hierarchical Interactive Graphics Standard (PHIGS) is now both an ANSI and an ISO standard. Both PHIGS and the expanded PHIGS+ packages are Widely available. In addition, a number of popular industry packages have emerged, including Silicon Graphics GL (Graphics Library), OpenGL, the Pixar RenderMan interface, PostScript interpreters for page descriptions, and a variety of painting, drawing, and design systems.
New Topics
Because of the tremendous number of changes that have occurred in the field of computer graphics, we decided to completely rewrite the book for the second edition, while maintaining the general organization of the first edition. All topics from the first edition were expanded to include discussions of current technology, and a great many new topics have been added. Topics that have been significantly expanded include antialiasing, fractal and other object-representation methods, ray tracing, spline curves and surfaces, illumination models, surfacerendering methods, and computer animation. New topics that have been added to this second edition include virtual reality, parallel implementations for graphics algorithms, superquadrics, BSP trees, shape grammars, particle systems, physically based modeling, scientific visualization, business visualization, quaternion methods in graphics algorithms, distribution ray tracing, fast-Phong shading, radiosity, bump mapping, morphing, and discussions of various mathematical methods useful in graphics applications.
This second edition can be used both as a text for students with no prior background in computer graphics and as a reference for graphics professionals. We emphasize basic principles needed to design, use, and understand computer graphics systems. Both hardware and software components of graphics systems are discussed, as well as various applications of computer graphics. We also include programming examples written in C to demonstrate the implementation and applications of the graphics algorithms. And we explore the features of PHIGS, PHIGS+, GKS, and other graphics libraries, while using PHIGS and PHIGS+ functions in the C programs to illustrate algorithm implementations and graphics applications.
Required Background
We assume no prior familiarity with computer graphics, but we do assume the reader has some knowledge of computer programming and basic data structures. A variety of mathematical methods are used in computer graphics algorithms, and these methods are discussed in some detail in the appendix. Mathematical topics covered in the appendix include techniques from analytic geometry, linear algebra, vector and tensor analysis, complex numbers, quaternions, and numerical analysis.
How to Use This Book as a Text
The material in this second edition evolved from notes used in a number of courses we have taught over the past several years, including introductory computer graphics, advanced graphics topics, scientific visualization, and graphics project courses. For a one-semester course, a subset of topics dealing with either two-dimensional methods or a combination of two-dimensional and three-dimensional topics can be chosen, depending on the requirements of a particular course. A two-semester course sequence can be used to cover the basic graphics concepts and methods in the first course and advanced three-dimensional methods and algorithms in the second course. For the serf-study reader, early chapters can be used to provide an understanding of graphics concepts, with individual topics selected from the later chapters according to the interests of the reader.
At the undergraduate level, an introductory two-dimensional graphics course can be organized with a detailed treatment of fundamental topics from Chapters 2 through 8 plus the introduction to three-dimensional concepts and methods given in Chapter 9. Selected topics, such as color models, animation, spline curves, or two-dimensional fractal representations, from the later chapters could be used as supplemental material. For a graduate or upper-level undergraduate course, basic two-dimensional concepts and methods can be covered in the first half of the course, with selected topics from three-dimensional modeling, viewing, and rendering covered in the second half. A second, or advanced-topics, course can be used to cover selected topics from object representations, surface rendering, and computer animation.
Chapter 1 is a survey of computer graphics, illustrating the diversity of applications areas. Following an introduction to the hardware and software components of graphics systems in Chapter 2, fundamental algorithms for the representation and display of two-dimensional graphics objects are presented in Chapters 3 and 4. These two chapters examine methods for producing basic picture components and techniques for adjusting size, color, and other object attributes. This introduces students to the programming techniques necessary for implementing graphics routines. Chapters 5 and 6 discuss two-dimensional geometric transformations and viewing algorithms. Methods for modeling and organizing two-dimensional picture components into separate structures are given in Chapter 7. In Chapter 8, we present graphics methods for user interfaces and for interactive input in various applications, including virtual-reality systems.
ns and individuals who furnished photographs and other materials, we again express our appreciation. We also acknowledge the many helpful comments received form our students in various computer graphics and visualization courses and seminars. We are indebted to all those who provided reviews or suggestions for improving the material covered in this book, and we extend our apologies to anyone we may have failed to mention. Thank you: Ed Angel, Norman Badler, Phillip Barry, Brian Barsky, Hedley Bond, Bart Braden, Lara Burton, Robert Burton, Greg Chwelos, John Cross, Steve Cunningham, John DeCatrel, Victor Duvaneko, Gary Eerkes, Parris Egbert, Tony Faustini, Thomas Foley, Thomas Frank, Don Gillies, Jack Goldfeather, Georges Grinstein, Eric Haines, Robert Herbst, Larry Hodges, Eng-Kiat Koh, Mike Krogh, Michael Laszlo, Suzanne Lea, Michael May, Nelson Max, David McAllister, Jeffrey McConnell, Gary McDonald, C. L. Morgan, Gred Nielson, James Oliver, Lee-Hian Quek, Laurence Rainville, Paul Ross, David Salomon, Gunther Schrack, Steven Shafer, Cliff Shaffer, Pete Shirley, Carol Smith, Stephanie Smullen, Jeff Spears, William Taffe, Wai Wan Tsang, Spencer Thomas, Sam Uselton, David Wen, Bill Wicker, Andrew Woo, Angelo Yfantis, Marek Zaremba, and Michael Zyda. Our thanks go also to Robert Burton's Fall 1995 Computer Graphics course at Brigham Young University for running and testing the C code for this book. And we thank our editor Alan Apt, Sondra Chavez, and the Colorado staff for their help, suggestions, and encouragement during the preparation of this C version of the second edition. To our production editors, Bayani DeLeon and Joe Scordato, and the Prentice Hall staff, we offer our thanks for another outstanding production job. Finally, a special thanks goes to Carol Hubbard for her help in developing the C code.
圖書目錄
1 A Survey of Computer
Graphics
1-1 Computer-Aided Design
1-2 Presentation Graphics
1-3 Computer Art
1-4 Entertainment
1-5 Education and Training
1-6 Visualization
1-7 Image Processing
1-8 Graphical User Interfaces
2 Overview of Graphics
Systems
2-1 Video Display Devices
Refresh Cathode-Ray Tubes
Raster-Scan Displays
Random-Scan Displays
Color CRT Monitors
Direct-View Storage Tubes
Flat-Panel Displays
Three-Dimensional Viewing Devices
Stereoscopic and Virtual-Reality
Systems
2-2 Raster-Scan Systems
Video Controller
Raster-Scan Display Processor
2-3 Random-Scan Systems
2-4 Graphics Monitors and Workstations
2-5 Input Devices
Keyboards
Mouse
Trackball and Spaceball
Joysticks
Data Glove
Digitizers
Image Scanners
Touch Panels
Light Pens
Voice Systems
2-6 Hard-Copy Devices
2-7 Graphics Software
Coordinate Representations
Graphics Functions
Software Standards
PHIGS Workstations
Summary
References
Exercises
3 Output Primitives
3-1 Points and Lines
3-2 Line-Drawing Algorithms
DDA Algorithm
Bresenham's Line Algorithm
Parallel Line Algorithms
3-3 Loading the Frame Buffer
3-4 Line Function
3-5 Circle-Generating Algorithms
Properties of Circles
Midpoint Circle Algorithm
3-6 Ellipse-Generating Algorithms
Properties of Ellipses
Midpoint Ellipse Algorithm
3-7 Other Curves
Conic Sections
Polynomials and Spline Curves
3-8 Parallel Curve Algorithms
3-9 Curve Functions
3-10 Pixel Addressing
and Object Geometry
Screen Grid Coordinates
Maintaining Geometric Properties
of Displayed Objects
3-11 Filled-Area Primitives
Scan-Line Polygon Fill Algorithm
Inside -Outside Tests
Scan-Line Fill of Curved Boundary
Areas
Boundary-Fill Algorithm
Flood-Fill Algorithm
3-12 Fill-Area Functions
3-13 Cell Array
3-14 Character Generation
Summary
Applications
References
Exercises
4 Attributes of Output
Primitives
4-1 Line Attributes
Line Type
Line Width
Pen and Brush Options
Line Color
4-2 Curve Attributes
4-3 Color and Grayscale Levels
Color Tables
Grayscale
4-4 Area-Fill Attributes
Fill Styles
Pattern Fill
Soft Fill
4-5 Character Attributes
Text Attributes
Marker Attributes
4-6 Bundled Attributes
Bundled Line Attributes
Bundled Area-Fill Attributes
Bundled Text Attributes
Bundled Marker Attributes
4-7 Inquiry Functions
4-8 Antialiasing
Supersampling Straight Line
Segments
Pixel-Weighting Masks
Area Sampling Straight Line
Segments
Filtering Techniques
Pixel Phasing
Compensating for Line Intensity
Differences
Antialiasing Area Boundaries
Summary
References
Exercises
5 Two-Dimensional Geometric
Transformations
5-1 Basic Transformations
Translation
Rotation
Scaling
5-2 Matrix Representations
and Homogeneous Coordinates
5-3 Composite Transformations
Translations
Rotations
Scalings
General Pivot-Point Rotation
General Fixed-Point Scaling
General Scaling Directions
Concatenation Properties
General Composite Transformations
and Computational Efficiency
5-4 Other Transformations
Reflection
Shear
5-5 Transformations Between Coordinate
Systems
5-6 Affine Transformations
5-7 Transformation Functions
5-8 Raster Methods for Transformations
Summary
References
Exercises
6 Two-Dimensional
Viewing
6-1 The Viewing Pipeline
6-2 Viewing Coordinate Reference Frame
6-3 Window-to-Viewport Coordinate
Transformation
6-4 Two-Dimensional Viewing Functions
6-5 Clipping Operations
6-6 Point Clipping
6-7 Line Clipping
Cohen-Sutherland Line Clipping
Liang-Barsky Line Clipping
Nicholl-Lee-Nicholl Line Clipping
Line Clipping Using Nonrectangular
Clip Windows
Splitting Concave Polygons
6-8 Polygon Clipping
Sutherland-Hodgeman Polygon
Clipping
Weiler-Atherton Polygon Clipping
Other Polygon-Clipping Algorithms
6-9 Curve Clipping
6-10 Text Clipping
6-11 Exterior Clipping
Summary
References
Exercises
7 Structures and Hierarchical
Modeling
7-1 Structure Concepts
Basic Structure Functions
Setting Structure Attributes
7-2 Editing Structures
Structure Lists and the Element
Pointer
Setting the Edit Mode
Inserting Structure Elements
Replacing Structure Elements
Deleting Structure Elements
Labeling Structure Elements
Copying Elements from One Structure
to Another
7-3 Basic Modeling Concepts
Model Representations
Symbol Hierarchies
Modeling Packages-
7-4 Hierarchical Modeling
with Structures
Local Coordinates and Modeling
Transformations
Modeling Transformations
Structure Hierarchies
Summary
References
Exercises
8 Graphical User Interfaces
and Interactive Input
Methods
8-1 The User Dialogue
Windows and Icons
Accommodating Multiple
Skill Levels
Consistency
Minimizing Memorization
Backup and Error Handling
Feedback
8-2 Input of Graphical Data
Logical Classification of Input
Devices
Locator Devices
Stroke Devices
String Devices
Valuator Devices
Choice Devices
Pick Devices
8-3 Input Functions
Input Modes
Request Mode
Locator and Stroke Input
in Request Mode
String Input in Request Mode
Valuator Input in Request Mode
Choice Input in Request Mode
Pick Input in Request Mode
Sample Mode
Event Mode
Concurrent Use of Input Modes
8-4 Initial Values for Input-Device
Parameters
8-5 Interactive Picture-Construction
Techniques
Basic Positioning Methods
Constraints
Grids
Gravity Field
Rubber-Band Methods
Dragging
Painting and Drawing
8-6 Virtual-Reality Environments
Summary
References
0 Exercises
9 Three-Dimensional
Concepts
9-1 Three-Dimensional Display Methods
Parallel Projection
Perspective Projection
Depth Cueing
Visible Line and Surface
Identification
Surface Rendering
Exploded and Cutaway Views
Three-Dimensional and Stereoscopic
Views
9-2 Three-Dimensional Graphics
Packages
10 Three-Dimensional
Object
Representations
10-1 Polygon Surfaces
Polygon Tables
Plane Equations
Polygon Meshes
10-2 Curved Lines and Surfaces
10-3 Quadric Surfaces
Sphere
Ellipsoid
Torus
10-4 Superquadrics
Superellipse
SupereUipsoid
10-5 Blobby Objects
10-6 Spline Representations
Interpolation and Approximation
Splines
Parametric Continuity
Conditions
Geometric Continuity
Conditions
Spline Specifications
10-7 Cubic Spline Interpolation
Methods
Natural Cubic Splines
Hermite Interpolation
Cardinal Splines
Kochanek-Bartels Splines
10-8 Bezier Curves and Surfaces
Bezier Curves
Properties of Bezier Curves
Design Techniques Using Bezier
Curves
Cubic Bezier Curves
Bezier Surfaces
10-9 B-Spline Curves and Surfaces
B-Spline Curves
Uniform, Periodic B-Splines
Cubic, Periodic B-Splines
Open, Uniform B-Splines
Nonuniform B-Splines
B-Spline Surfaces
10-10 Beta-Splines
Beta-Spline Continuity
Conditions
Cubic, Periodic Beta-Spline
Matrix Representation
10-11 Rational Splines
10-12 Conversion Between Spline
Representations
10-13 Displaying Spline Curves
and Surfaces
Homer's Rule
Forward-Difference Calculations
Subdivision Methods
10-14 Sweep Representations
10-15 Constructive Solid-Geometry
Methods
10-16 Octrees
10-17 BSP Trees
10-18 Fractal-Geometry Methods
Fractal-Generation Procedures
Classification of Fractals
Fractal Dimension
Geometric Construction
of Deterministic Self-Similar
Fractals
Geometric Construction
of Statistically Self-Similar
Fractals
Affine Fractal-Construction
Methods
Random Midpoint-Displacement
Methods
Controlling Terrain Topography
Self-Squaring Fractals
Self-Inverse Fractals
10-19 Shape Grammars and Other
Procedural Methods
10-20 Particle Systems
10-21 Physically Based Modeling
10-22 Visualization of Data Sets
Visual Representations
for Scalar Fields
Visual Representations
for Vector Fields
Visual Representations
for Tensor Fields
Visual Representations
for Multivariate Data Fields
Summary
References
Exercises
11 Three-Dimensional
Geometric and Modeling
Transformations
11-1 Translation
11-2 Rotation
Coordinate-Axes Rotations
General Three-Dimensional
Rotations
Rotations with Quatemions
11-3 Scaling
11-4 Other Transformations
Reflections
Shears
11-5 Composite Transformations
11-6 Three-Dimensional Transformation
Functions
11-7 Modeling and Coordinate
Transformations
Summary
References
Exercises
12 Three-Dimensional
Viewing
12-1 Viewing Pipeline
12-2 Viewing Coordinates
Specifying the View Plane
Transformation from World
to Viewing Coordinates
12-3 Projections
Parallel Projections
Perspective Projections
12-4 View Volumes and General
Projection Transformations
General Parallel-Projection
Transformations
General Perspective-Projection
Transformations
12-5 Clipping
Normalized View Volumes
Viewport Clipping
Clipping in Homogeneous
Coordinates
12-6 Hardware Implementations
12-7 Three-Dimensional Viewing
Functions
Summary
References
Exercises
13 Visible-Surface Detection
Methods
13-1 Classification of Visible-Surface
Detection Algorithms
13-2 Back-Face Detection
13-3 Depth-Buffer Method
13-4 A-Buffer Method
13-5 Scan-Line Method
13-6 Depth-Sorting Method
13-7 BSP-Tree Method
13-8 Area-Subdivision Method
13-9 Octree Methods
13-10 Ray-Casting Method
13-11 Curved Surfaces
Curved-Surface Representations
Surface Contour Plots
13-12 Wireframe Methods
13-13 Visibility-Detection Functions
Summary
References
Exercises
14 Illumination Models
and Surface-Rendering
Methods
14-1 Light Sources
14-2 Basi'c Illumination Models
Ambient Light
Diffuse Reflection
Specular Reflection
and the Phong Model
Combined Diffuse and Specular
Reflections with Multiple Light
Sources
Warn Model
Intensity Attenuation
Color Considerations
Transparency
Shadows
14-3 Displaying Light Intensities
Assigning Intensity Levels
Gamma Correction and Video
Lookup Tables
Displaying Continuous-Tone
Images
14-4 Halftone Patterns and Dithering
Techniques
Halftone Approximations
Dithering Techniques
14-5 Polygon-Rendering Methods
Constant-Intensity Shading
Gouraud Shading
Phong Shading
Fast Phong Shading
14-6 Ray-Tracing Methods
Basic Ray-Tracing Algorithm
Ray-Surface Intersection
Calculations
Reducing Object-Intersection
Calculations
Space-Subdivision Methods
Antialiased Ray Tracing
Distributed Ray Tracing
14-7 Radiosity Lighting Model
Basic Radiosity Model
Progressive Refinement
Radiosity Method
14-8 Environment Mapping
14-9 Adding Surface Detail
Modeling Surface Detail
with Polygons
Texture Mapping
Procedural Texturing
Methods
Bump Mapping
Frame Mapping
Summary
References
Exercises
15 Color Models and Color
Applications
15-1 Properties of Light
15-2 Standard Primaries and the
Chromaticity Diagram
XYZ Co]or Model
CIE Chromaticity Diagram
15-3 Intuitive Color Concepts
15-4 RGB Color Model
15-5 YIQ Color Model
15-6 CMY Color Model
15-7 HSV Color Model
15-8 Conversion Between HSV
and RGB Models
15-9 HLS Color Model
15-10 Color Selection
and Applications
Summary
References
Exercises
16 Computer
Animation
16-1 Design of Animation Sequences
16-2 General Computer-Animation
Functions
16-3 Raster Animations
16-4 Computer-Animation Languages
16-5 Key-Frame Systems
Morphing
Simulating Accelerations
16-6 Motion Specifications
Direct Motion Specification
Goal-Directed Systems
Kinematics and Dynamics
Summary
References
Exercises
A Mathematics for Computer
Graphics
A-1 Coordinate-Reference Frames
Two-Dimensional Cartesian
Reference Frames
Polar Coordinates in the xy Plane
Three-Dimensional Cartesian
Reference Frames
Three-Dimensional Curvilinear
Coordinate Systems
Solid Angle
A-2 Points and Vectors
Vector Addition and Scalar
Multiplication
Scalar Product of Two Vectors
Vector Product of Two Vectors
A-3 Basis Vectors and the Metric Tensor
Orthonormal Basis
Metric Tensor
A-4 Matrices
Scalar Multiplication and Matrix
Addition
Matrix Multiplication
Matrix Transpose
Determinant of a Matrix
Matrix Inverse
A-5 Complex Numbers
A-6 Quaternions
A-7 Nonparametric Representations
A-8 Parametric Representations
Solving Sets of Linear Equations
Finding Roots of Nonlinear
Equations
Evaluating Integrals
Fitting Curves to Data Sets
BIBLIOGRAPHY
INDEX