标题：计算机图形学（C语言版）第2版
图书信息
作者：Donald Hearn, M. Pauline Baker 图书详细信息： ISBN：9787302080848 定价：69元 印次：2-1 装帧：平装 印刷日期：2004-2-27
图书简介
本书介绍了设计与使用计算机图形学系统所必须的基本原理，讨论了图形学系统硬、软件及其应用，列举了C语言描述了编程实例以展示图形学算法的实现及应用，探讨了PHIGS、PHIGS+、GKS以及其他图珍库的特征。与第1版相比，在反走样、分形及其他物体表示法、光线跟踪、样条曲线及表面、光昭模型、表面绘制法和计算机动画制作方面本书有较大扩充，新增：虚拟现实、图形学算法的并行实现、超二次曲面、BSP树、形状文法、粒子系统、基于物理的模型、科学计算可视化、商业可视化、分布式光线跟踪、辐射度、变形以及有益于对图形学应用的各种数学方法的探讨。本书既可作为本科生和研究生的教材，也可作为图形学专业人员的参考书。
图书前言
computer graphics remains one of the most exalting and rapidly growing eomputer fields. Since the appearance of the first edition of this book, computer graphics has now become a common element in user interfaces, data visualization, television commercials, motion pictures, and many, many other applications. Hardware devices and algorithms have been developed for improving the effectiveness, realism, and speed of picture generation, and the current trend in computer graphics is to incorporate more physics principles into three-dimensional graphics algorithms to better simulate the complex interactions between objects and the lighting environment.Software StandardsSignificant 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 TopicsBecause 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 BackgroundWe 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 TextThe 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.
图书目录
PREFACE1 A Survey of ComputerGraphics1-1 Computer-Aided Design1-2 Presentation Graphics1-3 Computer Art1-4 Entertainment1-5 Education and Training1-6 Visualization1-7 Image Processing1-8 Graphical User Interfaces2 Overview of GraphicsSystems2-1 Video Display DevicesRefresh Cathode-Ray TubesRaster-Scan DisplaysRandom-Scan DisplaysColor CRT MonitorsDirect-View Storage TubesFlat-Panel DisplaysThree-Dimensional Viewing DevicesStereoscopic and Virtual-RealitySystems2-2 Raster-Scan SystemsVideo ControllerRaster-Scan Display Processor2-3 Random-Scan Systems2-4 Graphics Monitors and Workstations2-5 Input DevicesKeyboardsMouseTrackball and SpaceballJoysticksData GloveDigitizersImage ScannersTouch PanelsLight PensVoice Systems2-6 Hard-Copy Devices2-7 Graphics SoftwareCoordinate RepresentationsGraphics FunctionsSoftware StandardsPHIGS WorkstationsSummaryReferencesExercises3 Output Primitives3-1 Points and Lines3-2 Line-Drawing AlgorithmsDDA AlgorithmBresenham's Line AlgorithmParallel Line Algorithms3-3 Loading the Frame Buffer3-4 Line Function3-5 Circle-Generating AlgorithmsProperties of CirclesMidpoint Circle Algorithm3-6 Ellipse-Generating AlgorithmsProperties of EllipsesMidpoint Ellipse Algorithm3-7 Other CurvesConic SectionsPolynomials and Spline Curves3-8 Parallel Curve Algorithms3-9 Curve Functions3-10 Pixel Addressingand Object GeometryScreen Grid CoordinatesMaintaining Geometric Propertiesof Displayed Objects3-11 Filled-Area PrimitivesScan-Line Polygon Fill AlgorithmInside -Outside TestsScan-Line Fill of Curved BoundaryAreasBoundary-Fill AlgorithmFlood-Fill Algorithm3-12 Fill-Area Functions3-13 Cell Array3-14 Character GenerationSummaryApplicationsReferencesExercises4 Attributes of OutputPrimitives4-1 Line AttributesLine TypeLine WidthPen and Brush OptionsLine Color4-2 Curve Attributes4-3 Color and Grayscale LevelsColor TablesGrayscale4-4 Area-Fill AttributesFill StylesPattern FillSoft Fill4-5 Character AttributesText AttributesMarker Attributes4-6 Bundled AttributesBundled Line AttributesBundled Area-Fill AttributesBundled Text AttributesBundled Marker Attributes4-7 Inquiry Functions4-8 AntialiasingSupersampling Straight LineSegmentsPixel-Weighting MasksArea Sampling Straight LineSegmentsFiltering TechniquesPixel PhasingCompensating for Line IntensityDifferencesAntialiasing Area BoundariesSummaryReferencesExercises5 Two-Dimensional GeometricTransformations5-1 Basic TransformationsTranslationRotationScaling5-2 Matrix Representationsand Homogeneous Coordinates5-3 Composite TransformationsTranslationsRotationsScalingsGeneral Pivot-Point RotationGeneral Fixed-Point ScalingGeneral Scaling DirectionsConcatenation PropertiesGeneral Composite Transformationsand Computational Efficiency5-4 Other TransformationsReflectionShear5-5 Transformations Between CoordinateSystems5-6 Affine Transformations5-7 Transformation Functions5-8 Raster Methods for TransformationsSummaryReferencesExercises6 Two-DimensionalViewing6-1 The Viewing Pipeline6-2 Viewing Coordinate Reference Frame6-3 Window-to-Viewport CoordinateTransformation6-4 Two-Dimensional Viewing Functions6-5 Clipping Operations6-6 Point Clipping6-7 Line ClippingCohen-Sutherland Line ClippingLiang-Barsky Line ClippingNicholl-Lee-Nicholl Line ClippingLine Clipping Using NonrectangularClip WindowsSplitting Concave Polygons6-8 Polygon ClippingSutherland-Hodgeman PolygonClippingWeiler-Atherton Polygon ClippingOther Polygon-Clipping Algorithms6-9 Curve Clipping6-10 Text Clipping6-11 Exterior ClippingSummaryReferencesExercises7 Structures and HierarchicalModeling7-1 Structure ConceptsBasic Structure FunctionsSetting Structure Attributes7-2 Editing StructuresStructure Lists and the ElementPointerSetting the Edit ModeInserting Structure ElementsReplacing Structure ElementsDeleting Structure ElementsLabeling Structure ElementsCopying Elements from One Structureto Another7-3 Basic Modeling ConceptsModel RepresentationsSymbol HierarchiesModeling Packages-7-4 Hierarchical Modelingwith StructuresLocal Coordinates and ModelingTransformationsModeling TransformationsStructure HierarchiesSummaryReferencesExercises8 Graphical User Interfacesand Interactive InputMethods8-1 The User DialogueWindows and IconsAccommodating MultipleSkill LevelsConsistencyMinimizing MemorizationBackup and Error HandlingFeedback8-2 Input of Graphical DataLogical Classification of InputDevicesLocator DevicesStroke DevicesString DevicesValuator DevicesChoice DevicesPick Devices8-3 Input FunctionsInput ModesRequest ModeLocator and Stroke Inputin Request ModeString Input in Request ModeValuator Input in Request ModeChoice Input in Request ModePick Input in Request ModeSample ModeEvent ModeConcurrent Use of Input Modes8-4 Initial Values for Input-DeviceParameters8-5 Interactive Picture-ConstructionTechniquesBasic Positioning MethodsConstraintsGridsGravity FieldRubber-Band MethodsDraggingPainting and Drawing8-6 Virtual-Reality EnvironmentsSummaryReferences0 Exercises9 Three-DimensionalConcepts9-1 Three-Dimensional Display MethodsParallel ProjectionPerspective ProjectionDepth CueingVisible Line and SurfaceIdentificationSurface RenderingExploded and Cutaway ViewsThree-Dimensional and StereoscopicViews9-2 Three-Dimensional GraphicsPackages10 Three-DimensionalObjectRepresentations10-1 Polygon SurfacesPolygon TablesPlane EquationsPolygon Meshes10-2 Curved Lines and Surfaces10-3 Quadric SurfacesSphereEllipsoidTorus10-4 SuperquadricsSuperellipseSupereUipsoid10-5 Blobby Objects10-6 Spline RepresentationsInterpolation and ApproximationSplinesParametric ContinuityConditionsGeometric ContinuityConditionsSpline Specifications10-7 Cubic Spline InterpolationMethodsNatural Cubic SplinesHermite InterpolationCardinal SplinesKochanek-Bartels Splines10-8 Bezier Curves and SurfacesBezier CurvesProperties of Bezier CurvesDesign Techniques Using BezierCurvesCubic Bezier CurvesBezier Surfaces10-9 B-Spline Curves and SurfacesB-Spline CurvesUniform, Periodic B-SplinesCubic, Periodic B-SplinesOpen, Uniform B-SplinesNonuniform B-SplinesB-Spline Surfaces10-10 Beta-SplinesBeta-Spline ContinuityConditionsCubic, Periodic Beta-SplineMatrix Representation10-11 Rational Splines10-12 Conversion Between SplineRepresentations10-13 Displaying Spline Curvesand SurfacesHomer's RuleForward-Difference CalculationsSubdivision Methods10-14 Sweep Representations10-15 Constructive Solid-GeometryMethods10-16 Octrees10-17 BSP Trees10-18 Fractal-Geometry MethodsFractal-Generation ProceduresClassification of FractalsFractal DimensionGeometric Constructionof Deterministic Self-SimilarFractalsGeometric Constructionof Statistically Self-SimilarFractalsAffine Fractal-ConstructionMethodsRandom Midpoint-DisplacementMethodsControlling Terrain TopographySelf-Squaring FractalsSelf-Inverse Fractals10-19 Shape Grammars and OtherProcedural Methods10-20 Particle Systems10-21 Physically Based Modeling10-22 Visualization of Data SetsVisual Representationsfor Scalar FieldsVisual Representationsfor Vector FieldsVisual Representationsfor Tensor FieldsVisual Representationsfor Multivariate Data FieldsSummaryReferencesExercises11 Three-DimensionalGeometric and ModelingTransformations11-1 Translation11-2 RotationCoordinate-Axes RotationsGeneral Three-DimensionalRotationsRotations with Quatemions11-3 Scaling11-4 Other TransformationsReflectionsShears11-5 Composite Transformations11-6 Three-Dimensional TransformationFunctions11-7 Modeling and CoordinateTransformationsSummaryReferencesExercises12 Three-DimensionalViewing12-1 Viewing Pipeline12-2 Viewing CoordinatesSpecifying the View PlaneTransformation from Worldto Viewing Coordinates12-3 ProjectionsParallel ProjectionsPerspective Projections12-4 View Volumes and GeneralProjection TransformationsGeneral Parallel-ProjectionTransformationsGeneral Perspective-ProjectionTransformations12-5 ClippingNormalized View VolumesViewport ClippingClipping in HomogeneousCoordinates12-6 Hardware Implementations12-7 Three-Dimensional ViewingFunctionsSummaryReferencesExercises13 Visible-Surface DetectionMethods13-1 Classification of Visible-SurfaceDetection Algorithms13-2 Back-Face Detection13-3 Depth-Buffer Method13-4 A-Buffer Method13-5 Scan-Line Method13-6 Depth-Sorting Method13-7 BSP-Tree Method13-8 Area-Subdivision Method13-9 Octree Methods13-10 Ray-Casting Method13-11 Curved SurfacesCurved-Surface RepresentationsSurface Contour Plots13-12 Wireframe Methods13-13 Visibility-Detection FunctionsSummaryReferencesExercises14 Illumination Modelsand Surface-RenderingMethods14-1 Light Sources14-2 Basi'c Illumination ModelsAmbient LightDiffuse ReflectionSpecular Reflectionand the Phong ModelCombined Diffuse and SpecularReflections with Multiple LightSourcesWarn ModelIntensity AttenuationColor ConsiderationsTransparencyShadows14-3 Displaying Light IntensitiesAssigning Intensity LevelsGamma Correction and VideoLookup TablesDisplaying Continuous-ToneImages14-4 Halftone Patterns and DitheringTechniquesHalftone ApproximationsDithering Techniques14-5 Polygon-Rendering MethodsConstant-Intensity ShadingGouraud ShadingPhong ShadingFast Phong Shading14-6 Ray-Tracing MethodsBasic Ray-Tracing AlgorithmRay-Surface IntersectionCalculationsReducing Object-IntersectionCalculationsSpace-Subdivision MethodsAntialiased Ray TracingDistributed Ray Tracing14-7 Radiosity Lighting ModelBasic Radiosity ModelProgressive RefinementRadiosity Method14-8 Environment Mapping14-9 Adding Surface DetailModeling Surface Detailwith PolygonsTexture MappingProcedural TexturingMethodsBump MappingFrame MappingSummaryReferencesExercises15 Color Models and ColorApplications15-1 Properties of Light15-2 Standard Primaries and theChromaticity DiagramXYZ Co]or ModelCIE Chromaticity Diagram15-3 Intuitive Color Concepts15-4 RGB Color Model15-5 YIQ Color Model15-6 CMY Color Model15-7 HSV Color Model15-8 Conversion Between HSVand RGB Models15-9 HLS Color Model15-10 Color Selectionand ApplicationsSummaryReferencesExercises16 ComputerAnimation16-1 Design of Animation Sequences16-2 General Computer-AnimationFunctions16-3 Raster Animations16-4 Computer-Animation Languages16-5 Key-Frame SystemsMorphingSimulating Accelerations16-6 Motion SpecificationsDirect Motion SpecificationGoal-Directed SystemsKinematics and DynamicsSummaryReferencesExercisesA Mathematics for ComputerGraphicsA-1 Coordinate-Reference FramesTwo-Dimensional CartesianReference FramesPolar Coordinates in the xy PlaneThree-Dimensional CartesianReference FramesThree-Dimensional CurvilinearCoordinate SystemsSolid AngleA-2 Points and VectorsVector Addition and ScalarMultiplicationScalar Product of Two VectorsVector Product of Two VectorsA-3 Basis Vectors and the Metric TensorOrthonormal BasisMetric TensorA-4 MatricesScalar Multiplication and MatrixAdditionMatrix MultiplicationMatrix TransposeDeterminant of a MatrixMatrix InverseA-5 Complex NumbersA-6 QuaternionsA-7 Nonparametric RepresentationsA-8 Parametric RepresentationsA-9 Numerical MethodsSolving Sets of Linear EquationsFinding Roots of NonlinearEquationsEvaluating IntegralsFitting Curves to Data SetsBIBLIOGRAPHYINDEX[1]