|
Introduction To Geometric Computing
The geometric ideas in computer science, mathematics, engineering, and physics have considerable overlap and students in each of these disciplines will eventually encounter geometric computing problems. The topic is traditionally taught in mathematics departments via geometry courses, and in computer science through computer graphics modules. This
text isolates the fundamental topics affecting these disciplines and lies at the intersection of classical geometry and modern computing.
The main theme of the book is the definition of coordinate-free geometric software layers for Euclidean, spherical, projective, and oriented-projective geometries. Results are derived from elementary linear algebra and many classical computer graphics problems (including the graphics pipeline) are recast in this new language. Also included is a novel treatment of classical geometric and solid modeling problems. The definition of geometric software layers promotes reuse, speeds up debugging, and prepares the ground for a thorough discussion of advanced topics.
Start-up programs are provided for many programming exercises making this an invaluable book for computer science lecturers as well as software developers and researchers in the computer graphics industry.
CONTENTS:
Introduction.- Introduction and Historical Notes.- Euclidean Geometry.- 2D Computational Euclidean Geometry.- 3D Computational Euclidean Geometry.- Affine Transformations.- Affine Intersections.- Genericity in Geometric Computing.- Numerical Precision.- Non-Euclidean Geometries.- Spherical Geometry.- Rotations and Quaternions.- Barycentric Coordinates.- Projective Geometry.- Homogeneous Coordinates for Projective Geometry.- Oriented Projective Geometry.- Oriented Projective Intersections.- Grassmannians.- Coordinate-Free Geometry.- Homogeneous Coordinates for Euclidean Geometry.- Coordinate-Free Geometry.- Filtering.- Introduction to CGAL.- Raster Graphics.- Segment Scan Conversion.- Polygon-Point Containment.- Illumination and Shading.- Raster-Based Visibility.- Ray Tracing.- Graphs.- Graphs: A Comparison of Four Libraries.- Tree and Graph Drawing.- Introduction to the Boost Graph Library.- Geometric and Solid Modeling.- Boundary Representations.- The Halfedge and Euler Operators.- Binary Space Partitioning.- Constructive Solid Geometry.- Nef Polyhedra.- Tetrahedralizations.- Vector Visibility.- Visibility in the Plane.- Visibility in Space.- The PostScript Language.- OpenGL.- the GLOW Toolkit.- Generic Programming.-
|