Muutke küpsiste eelistusi

Introduction to Geometric Computing 1st Edition. 2nd Printing. [Pehme köide]

  • Formaat: Paperback / softback, 340 pages, kõrgus x laius: 254x203 mm, kaal: 780 g, XVII, 340 p., 1 Paperback / softback
  • Ilmumisaeg: 31-Jul-2008
  • Kirjastus: Springer London Ltd
  • ISBN-10: 1848001142
  • ISBN-13: 9781848001145
  • Pehme köide
  • Hind: 62,59 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 73,64 €
  • Säästad 15%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 340 pages, kõrgus x laius: 254x203 mm, kaal: 780 g, XVII, 340 p., 1 Paperback / softback
  • Ilmumisaeg: 31-Jul-2008
  • Kirjastus: Springer London Ltd
  • ISBN-10: 1848001142
  • ISBN-13: 9781848001145
Provides information on the mathematics and engineering that comprise computer graphics and computational geometry.

Although geometry has been a flourishing discipline for millennia, most of it has seen either no practical applications or only esoteric ones. Computing is quickly making much of geometry intriguing not only for philosophers and mathematicians, but also for scientists and engineers. What is the core set of topics that a practitioner needs to study before embarking on the design and implementation of a geometric system in a specialized discipline? This book attempts to find the answer.Every programmer tackling a geometric computing problem encounters design decisions that need to be solved. What may not be clear to individual programmers is that these design decisions have already been contemplated by others who have gone down some system design path only to discover (usually much later) that the design decisions that were made were lacking in some respect. This book reviews the geometric theory then applies it in an attempt to find that elusive “right” design.

Computing is quickly making much of geometry intriguing not only for philosophers and mathematicians, but also for scientists and engineers. What is the core set of topics that a practitioner needs to study before embarking on the design and implementation of a geometric system in a specialized discipline? This book attempts to find the answer, and it is the first book to include geometric issues, implementation issues, base software layers, and geometry background. Every programmer tackling a geometric computing problem encounters design decisions that need to be solved. This book reviews the geometric theory then applies it in an attempt to find that elusive "right" design.

Arvustused

From the reviews:









"This textbook is excellent for students and programmers working in geometric computing. The main theme of the book is the definition of coordinate-free geometric software layers for Euclidean, spherical, projective, and oriented projective geometries. The reader can learn the way of designing libraries for Euclidean, spherical, projective, and oriented projective geometries. The author also presents the classical raster graphics algorithms that are traditionally introduced in an undergraduate computer graphics course." (Attila Fazekas, Zentralblatt MATH, Vol. 1154, 2009)

Preface v
Part I Euclidean Geometry
1(84)
2D Computational Euclidean Geometry
3(14)
Points and Segments
3(3)
A Separate Type for Vectors
6(3)
Vector Normalization and Directions
9(1)
Affine Combinations
10(1)
Lines
11(2)
Vector Orthogonality and Linear Dependence
13(4)
Geometric Predicates
17(10)
Predicate Return Type
17(1)
The Turn Predicate
18(3)
Side of Circle Predicate
21(1)
Order Predicate
22(1)
The Geometry of the Euclidean Line E1
23(1)
Immutability of Geometric Objects
24(1)
Exercises
25(2)
3D Computational Euclidean Geometry
27(8)
Points in Euclidean Space
27(1)
Vectors and Directions
28(1)
Vector Orthogonality and Linear Dependence
28(1)
Planes in Space
29(1)
Lines in Space
30(1)
Sidedness Predicates in 3D
31(1)
Dominant Axis
32(1)
Exercises
33(2)
Affine Transformations
35(16)
Affine Transformations in 2D
35(3)
Properties of Affine Transformations
38(1)
Composition of Affine Transformations
39(1)
Affine Transformation Objects
40(1)
Viewport Mapping
41(1)
Orthogonal Matrices
42(2)
Orthogonal Transformations
44(2)
Euler Angles and Rotation in Space
46(1)
Rank of a Matrix
47(1)
Finding the Affine Mapping Given the Points
47(1)
Exercises
48(3)
Affine Intersections
51(10)
Nomenclature
51(1)
Finding Line and Segment Intersections
51(3)
Clipping or Splitting a Segment
54(3)
Clipping or Splitting a Polygon
57(2)
Exercises
59(2)
Genericity in Geometric Computing
61(8)
A Generic Class for a Point
61(1)
A Scalar Type
62(2)
Approach to Choosing the Number Type
64(1)
Algebraic Degree
64(2)
Repercussions from Changing the Number Type
66(1)
Exercises
67(2)
Numerical Precision
69(16)
One-Dimensional Analogue
69(1)
The Importance of Precision
69(2)
Examples of Precision Difficulties
71(3)
A Visual Example
74(1)
Bit-Level Reliability of Floating Point Numbers
74(3)
Solutions to Precision Problems
77(3)
Algebraic Vs. Synthetic Geometry
80(1)
Documenting Degeneracies
81(1)
Exercises
81(4)
Part II Non-Euclidean Geometries
85(84)
1D Computational Spherical Geometry
87(6)
A Point
87(1)
Point Orientation
88(1)
A Segment
88(1)
Point-Segment Intersection
89(1)
Segment Intersection and Interpolation
90(1)
Exercises
91(2)
2D Computational Spherical Geometry
93(8)
Spherical Geometry Objects
93(1)
A Spherical Point
94(1)
A Spherical Circle
95(1)
A Spherical Segment
96(2)
Intersections
98(1)
Exercises
99(2)
Rotations and Quaternions
101(8)
Rotations in the Plane
101(2)
Rotations in Space
103(4)
Exercises
107(2)
Projective Geometry
109(10)
The Projective Line
109(3)
The Projective Plane
112(3)
The Projective Space
115(1)
One-, Two-, and Three-Point Perspective
116(1)
Exercises
117(2)
Homogeneous Coordinates for Projective Geometry
119(24)
The Projective Line
119(3)
The Projective Plane
122(5)
The Projective Space
127(1)
A Line in the Projective Space
128(2)
Transformations in the Projective Line
130(1)
Transformations in the Projective Plane
131(3)
Transformations in the Projective Space
134(1)
Canonical Projective Points
135(1)
Planar Projection
136(5)
Exercises
141(2)
Barycentric Coordinates
143(6)
Barycentric Coordinates in One Dimension
143(2)
Barycentric Coordinates in Two Dimensions
145(1)
Exercises
146(3)
Oriented Projective Geometry
149(8)
Double-Sided Projection
149(2)
The Oriented Projective Line and Plane
151(1)
Oriented Projective Transformations
152(3)
Should One Collapse Geometric Libraries?
155(1)
Which Model Is Right?
155(1)
Exercises
156(1)
Oriented Projective Intersections
157(12)
The Need for Clipping
157(1)
Clipping in Oriented Projective Spaces
158(2)
The Algebra of Intersections
160(1)
The Revised Graphics Pipeline
161(2)
Clipping or Splitting a Segment
163(1)
The Graphics Pipeline as a Function Object
164(2)
Characterizing the Four Geometries
166(1)
Exercises
167(2)
Part III Coordinate-Free Geometry
169(22)
Homogeneous Coordinates for Euclidean Geometry
171(4)
Homogeneous Coordinates for Efficiency
171(1)
Homogeneous Coordinates for Exactness
172(1)
Point Representation
172(1)
Line Representation
172(1)
Affine Transformation Objects
173(1)
Sorting Points on the Euclidean Line E1
174(1)
Exercises
174(1)
Coordinate-Free Geometric Computing
175(8)
Stages of a Geometric System
175(1)
Dangers of the Lack of Coordinate Freedom
176(1)
Coordinate Freedom as Bug Deterrent
177(1)
Coordinate Freedom as a Force to a Cleaner Interface
178(1)
Coordinate Freedom in Practice
179(2)
Exercises
181(2)
Introduction to CGAL
183(8)
Typename Aliasing
183(1)
Traits
184(1)
Nested Typedefs for Name Commonality in CGAL
185(1)
Defining a New CGAL Kernel
186(2)
Using Pointers in a Geometric Kernel
188(1)
Future Libraries
189(2)
Part IV Raster Graphics
191(26)
Segment Scan Conversion
193(8)
What Is a Pixel?
193(1)
Raster Images
193(3)
Segment Rasterization
196(4)
Exercises
200(1)
Polygon-Point Containment
201(4)
Rays
201(1)
Convex Polygon-Point Containment
201(1)
Concave Polygon-Point Containment
202(1)
Mesh Pixel Partition
203(1)
Exercises
203(2)
Illumination and Shading
205(4)
Diffuse Shading
205(1)
Specular Shading
205(1)
Ambient Shading
206(1)
Gouraud and Phong Shading
206(1)
Exercises
207(2)
Raster-Based Visibility
209(4)
Pixels on a Scanline
209(1)
The Z-Buffer
209(1)
The Active Edge List
210(1)
The Edge Table
210(1)
The Graphics Pipeline
211(1)
Exercises
211(2)
Ray Tracing
213(4)
Ray Casting
213(1)
Ray-Polygon Intersection
213(1)
Reflection
214(1)
Refraction
214(1)
Recursion
214(1)
Exercises
215(2)
Part V Tree and Graph Drawing
217(18)
Tree Drawing
219(8)
Binary Search Trees
219(2)
Tree Drawing
221(1)
Rank
Tidier Tree Drawing
222(3)
Tree Drawing
225(1)
Exercises
225(2)
Graph Drawing
227(8)
A Sparse Graph Implementation
227(3)
Barycentric Graph Drawing
230(2)
Force-Directed Graph Drawing
232(1)
Exercises
232(3)
Part VI Geometric and Solid Modeling
235(50)
Boundary Representations
237(8)
Face Sets
237(1)
Indexed Face Sets
238(2)
Platonic Solids
240(2)
Euler Equation
242(1)
Graphs of Solids
242(1)
Exercises
243(2)
The Halfedge Data Structure and Euler Operators
245(10)
Introduction
245(1)
Halfedge Data Structure
246(2)
Euler Operators
248(3)
Solids of Arbitrary Genus
251(1)
Exercises
252(3)
BSP Trees in Euclidean and Spherical Geometries
255(10)
Labeled-Leaf Binary Search Trees
255(1)
Operations on Segments in E1
256(2)
Operations on Segments in S1
258(2)
Operations on Convex Polygons in E2
260(2)
Exercises
262(3)
Geometry-Free Geometric Computing
265(12)
A Generic BSP Node
265(1)
Attributes
266(2)
Boolean Operations and Attribute Maintenance
268(2)
Subtree Construction in E2
270(1)
Point Containment
270(1)
Collecting the Convex Polytopes
271(1)
Collecting the Boundary
272(3)
Developing for Multiple Geometries
275(1)
Exercises
276(1)
Constructive Solid Geometry
277(8)
A CSG Example
277(1)
CSG Class Diagram
277(2)
CSG Object Diagram
279(1)
Point Classification
279(1)
Regularization
280(1)
Neighborhood
280(2)
Exercises
282(3)
Part VII Vector Visibility
285(12)
Visibility from Euclidean to Spherical Spaces
287(6)
Incorrectness of Sorting by Distance
287(1)
Representing the Output
287(1)
Data Structures for 2D Visibility
288(1)
Computing the View
288(1)
Computing the Depth Order
289(1)
Reducing Visibility to Boolean Operations
289(1)
Example of Vector Visibility
290(1)
Exercises
291(2)
Visibility in Space
293(4)
Spherical Projection
293(1)
Constructing a DCEL Embedded on S2
294(1)
Exercises
295(2)
Appendices
297(34)
A The PostScript Language
299(10)
A.1 Introduction
299(1)
A.2 Encapsulated PostScript
300(1)
A.3 Drawing Lines and Filling Polygonal Regions
301(2)
A.4 Region Overlap
303(1)
A.5 Arcs
303(1)
A.6 The Execution Stack and Function Definitions
303(2)
A.7 Loops
305(1)
A.8 Rendering Text
306(1)
A.9 Writing a PostScript Class
307(2)
B OpenGL
309(10)
B.1 OpenGL Types and Functions
309(1)
B.2 glBegin-glEnd Blocks
310(1)
B.3 Error Checking
311(1)
B.4 Display Lists
312(1)
B.5 Colors
313(1)
B.6 Double Buffering
314(1)
B.7 The Pipeline and Transformations
315(2)
B.8 Lights and Shading
317(1)
B.9 Encapsulating OpenGL Calls
318(1)
C The GLOW Toolkit
319(12)
C.1 Introduction---Why GLOW?
319(1)
C.2 Window Creation and Drawing
320(1)
C.3 Keyboard Events
321(1)
C.4 Idle Events
322(2)
C.5 Modifying the Projection upon Window Resizing
324(1)
C.6 Widgets---Checkboxes and Buttons
325(1)
C.7 Arcball Manipulation
326(2)
C.8 Displaying the Frame Rate
328(1)
C.9 Displaying the Frame Rate in a Widget
329(1)
C.10 GLUT Primitives
329(2)
Bibliography 331(4)
Index 335