You are previewing Computational Geometry in C, Second Edition.
O'Reilly logo
Computational Geometry in C, Second Edition

Book Description

This is the revised and expanded 1998 edition of a popular introduction to the design and implementation of geometry algorithms arising in areas such as computer graphics, robotics, and engineering design. The basic techniques used in computational geometry are all covered: polygon triangulations, convex hulls, Voronoi diagrams, arrangements, geometric searching, and motion planning. The self-contained treatment presumes only an elementary knowledge of mathematics, but reaches topics on the frontier of current research, making it a useful reference for practitioners at all levels. The second edition contains material on several new topics, such as randomized algorithms for polygon triangulation, planar point location, 3D convex hull construction, intersection algorithms for ray-segment and ray-triangle, and point-in-polyhedron. The code in this edition is significantly improved from the first edition (more efficient and more robust), and four new routines are included. Java versions for this new edition are also available. All code is accessible from the book's Web site (http://cs.smith.edu/~orourke/) or by anonymous ftp.

Table of Contents

  1. Cover
  2. Half Title
  3. Title Page
  4. Copyright
  5. Dedication
  6. Contents
  7. Preface
  8. 1. Polygon Triangulation
    1. 1.1 Art Gallery Theorems
    2. 1.2 Triangulation: Theory
    3. 1.3 Area of Polygon
    4. 1.4 Implementation Issues
    5. 1.5 Segment Intersection
    6. 1.6 Triangulation: Implementation
  9. 2. Polygon Partitioning
    1. 2.1 Monotone Partitioning
    2. 2.2 Trapezoidalization
    3. 2.3 Partition into Monotone Mountains
    4. 2.4 Linear-Time Triangulation
    5. 2.5 Convex Partitioning
  10. 3. Convex Hulls in Two Dimensions
    1. 3.1 Definitions of Convexity and Convex Hulls
    2. 3.2 Naive Algorithms for Extreme Points
    3. 3.3 Gift Wrapping
    4. 3.4 QuickHull
    5. 3.5 Graham's Algorithm
    6. 3.6 Lower Bound
    7. 3.7 Incremental Algorithm
    8. 3.8 Divide and Conquer
    9. 3.9 Additional Exercises
  11. 4. Convex Hulls in Three Dimensions
    1. 4.1 Polyhedra
    2. 4.2 Hull Algorithms
    3. 4.3 Implementation of Incremental Algorithm
    4. 4.4 Polyhedral Boundary Representations
    5. 4.5 Randomized Incremental Algorithm
    6. 4.6 Higher Dimensions
    7. 4.7 Additional Exercises
  12. 5. Voronoi Diagrams
    1. 5.1 Applications: Preview
    2. 5.2 Definitions and Basic Properties
    3. 5.3 Delaunay Triangulations
    4. 5.4 Algorithms
    5. 5.5 Applications in Detail
    6. 5.6 Medial Axis
    7. 5.7 Connection to Convex Hulls
    8. 5.8 Connection to Arrangements
  13. 6. Arrangements
    1. 6.1 Introduction
    2. 6.2 Combinatorics of Arrangements
    3. 6.3 Incremental Algorithm
    4. 6.4 Three and Higher Dimensions
    5. 6.5 Duality
    6. 6.6 Higher-Order Voronoi Diagrams
    7. 6.7 Applications
    8. 6.8 Additional Exercises
  14. 7. Search and Intersection
    1. 7.1 Introduction
    2. 7.2 Segment-Segment Intersection
    3. 7.3 Segment-Triangle Intersection
    4. 7.4 Point in Polygon
    5. 7.5 Point in Polyhedron
    6. 7.6 Intersection of Convex Polygons
    7. 7.7 Intersection of Segments
    8. 7.8 Intersection of Nonconvex Polygons
    9. 7.9 Extreme Point of Convex Polygon
    10. 7.10 Extremal Polytope Queries
    11. 7.11 Planar Point Location
  15. 8. Motion Planning
    1. 8.1 Introduction
    2. 8.2 Shortest Paths
    3. 8.3 Moving a Disk
    4. 8.4 Translating a Convex Polygon
    5. 8.5 Moving a Ladder
    6. 8.6 Robot Arm Motion
    7. 8.7 Separability
  16. 9. Sources
    1. 9.1 Bibliographies and FAQs
    2. 9.2 Textbooks
    3. 9.3 Book Collections
    4. 9.4 Monographs
    5. 9.5 Journals
    6. 9.6 Conference Proceedings
    7. 9.7 Software
  17. Bibliography
  18. Index