"The book of nature is written in the characters of geometry."
-
Galileo

Go to Specific Links
Related to COMP-507 (Computational Geometry course).
General Links - Computational Geometry:
General Links - More Geometry:
Specific
Links Related to the Course Material:
Chapter Links:
-
Classical
Geometry, Basic Concepts, Theorems and Proofs
-
Point
Inclusion Problems
-
Convexity
Testing
-
Polygon
Triangulation
-
Art-Gallery
Theorems
-
Polygonizations
of Point Sets and Generating Random Polygons
-
Distances
Within and Between Sets
-
Subdivisions
Induced by Points: Triangulations, Quadrangulations...
-
Complexity,
Convexity and Unimodality
-
Convex
Hulls
-
Visibility
(Hidden-Line Problems)
-
Updating
Triangulations of Points and Line Segments
-
Intersection
Problems
-
Proximity
Graphs, Voronoi Diagrams and Polyhedral Computations
-
Linear Programming
-
Facility
Location
-
Mobility
of Objects in Space
-
Degeneracies
in Computational Geometry
-
Transversals
of Sets
-
Arrangements
-
Skeletons
of Polygons
-
Visualization
1. Classical
Geometry, Basic Concepts, Theorems and Proofs
-
The Straight-Edge and Compass Computer:
-
Francois
Labelle's Tutorial on the Complexity of Ruler and Compass Constructions
(with interactive Java applet)
-
GRACE
(A graphical ruler and compass editor)
-
The straight-edge and
compass
-
Constructive
geometry of the Greeks
-
Geometric
constructions
-
Geometrography
and the Lemoine simplicity of geometric constructions
-
Wonders
of Ancient Greek Geometry
-
Models of Computation:
-
Ceiling
and Floor functions
-
Polygons
and representations
-
Computing
the area of a polygon
-
On Proving Things:
-
Notes
on methods of proof
-
100%
Mathematical Proof
-
The
Nuts and Bolts of Proofs
-
Writing
Down Proofs
-
On
Proofs in Mathematics
-
Imre
Lakatos on Proofs and Refutations
-
More
about Imre Lakatos
-
Common
errors in mathematics
2. Point
Inclusion Problems
-
The Jordan Curve Theorem:
-
Octavian
Cismasu's Tutorial on the Jordan Curve Theorem (with interactive Java
applet)
-
Point-in-Polygon Testing:
-
The
plumb-line algorithm
-
More
on the plumb-line algorithm
-
Point inclusion in the query mode
3. Convexity
Testing
-
Convex Polygons:
-
Testing
the orientation of a simple polygon
-
Testing
the convexity of a polygon
4. Polygon
Triangulation
-
History
of Triangulation Algorithms
-
Ears and Mouths of Polygons:
-
Ian Garton's
Tutorial on cutting ears and stuffing mouths (with interactive Java
applets)
-
Simple
polygons have ears
and mouths
-
Meisters' Two-Ears
Theorem
-
More about Gary
Meisters
-
The one-mouth theorem:
-
Ian Garton's Tutorial
-
Polygons are Anthropomorphic
(PostScript file)
-
Diagonal insertion
-
Prune-and-Search:
-
Finding an ear in linear
time (PostScript)
-
Finding an ear
in linear time (HTML)
-
The Graham Scan
triangulates simple polygons (PostScript)
-
Fast
Polygon Triangulation in Practice:
-
Efficient polygon
triangulation algorithms. Includes counter-examples
to many published algorithms. (PostScript)
-
Geometric
hashing for faster Ear-Cutting in practice (PostScript)
-
Seidel's
Algorithm
-
Triangulating
monotone polygons in linear time
-
Diagonals:
Part I - AMS Feature Column Essay by Joseph Malkevitch
5. Art-Gallery
Theorems
-
The Art-Gallery problem:
-
Chvatal's
art gallery theorem
-
Thierry
Dagnino's Tutorial on Chvatal's art-gallery theorem (with interactive
Java applet)
-
Three-colorability of triangulated
polygons
-
Illuminating
the Free Space Among Quadrilateral Obstacles
-
Mobile
(edge) guards
-
Illuninating
polygons with mirrored walls
6.
Polygonizations of Point Sets and Generating Random Polygons
-
Drawing Simple Polygons through
Sets of Points:
-
Tony
Ruso & Valeriu Sitaru's Polygonization Tutorial (with interactive
Java applet)
-
Monotonic polygonizations
-
Star-shaped polygonizations
-
Polygonization
counter (Java applet)
-
Generating
Random Polygons
-
Midpoint
Polygonization of Points (with Java applet)
7. Distances
Within and Between Sets
-
Minkowski
metrics
-
Distance
-
Manhattan
metric: Pascal Tesson's tutorial on taxicab geometry
-
Minkowski Operations:
-
Minkowski
sum and difference
-
Software
for computing Minkowski sums
-
More
about Hermann Minkowski
-
The Closest Pair Problem:
-
Closest-pair
applet animation of divide-and-conquer algorithm
-
Diameter algorithms:
-
Diameter
algorithms (Mathew Suderman's tutorial)
-
Computing the Width of a Set:
-
Jaqueline
Chen's tutorial on width (with interactive Java applet)
-
Width algorithms in
2 and 3 dimensions (PostScript file)
-
The Rotating Calipers
-
The Rotating
Caliper Page of Hormoz Pirzadeh (with an awsome
Java applet!)
-
Solving
five geometry problems with the rotating calipers
-
The
Rotating Caliper Graph
-
The
Reuleaux triangle (Eric's Treasure Trove)
-
The
Reuleaux triangle (The Geometry Junkyard)
-
Shapes
of Constant Width
-
The Maximum Distance:
-
A simple O(n log
n) algorithm for computing the maximum distance between two finite sets
in the plane (PostScript)
-
A more complicated
O(n log n) algorithm for the maximum distance between two point sets which
generalizes to higher dimensions (PostScript)
-
The Minimum Distance:
-
The minimum distance
between two point sets (PostScript)
-
The minimum
vertex distance between two convex polygons (PostScript)
-
The Hausdorff Distance:
-
The
Hausdorff Distance
-
Normand Gregoire
& Mikael Bouillot's Tutorial on the Hausdorff distance and its applications
(with
interactive Java applet)
8. Subdivisions
Induced by Points: Triangulations, Quadrangulations...
-
Triangulations:
-
Triangles
-
Triangulation via Polygonizations of points
-
Divide-and-conquer
-
The three-coins algorithm
-
Monotone polygons
-
Star-shaped polygons
-
Edge-visible polygons
-
Externally visible polygons
-
Minimum-Weight Triangulations:
-
Francois
Labelle's interactive Java applet
-
Minimum-weight
triangulation of a convex polygon
-
Quadrangulations:
-
Quadrilaterals
-
Martin
Blais' Tutorial on Quadrangulations (with interactive Java applet)
-
Characterizing and Computing
Quadrangulations of point sets (PostScript file)
-
Converting triangulations
to quadrangulations (PostScript file)
-
Application
of convex quadrangulations to font design
9. Complexity,
Convexity and Unimodality
-
Convex
Set, convex function
-
Unimodal distance functions in geometry
-
Binary Search
10. Convex Hulls
-
Convex
hull algorithms for points in the plane (Java interactive demos)
-
Convex
hulls in 2 and 3 dimensions (interactive Java demos)
-
Incremental (point-insertion)
-
Randomized
incremental (PostScript)
-
The
Graham scan
-
More about Ron
Graham
-
Divide
& Conquer (merge hull)
-
Quickhull
(throw-away principle)
-
The
Jarvis march (gift-wrapping)
-
Chan's
Algorithm
-
More
about Timothy Chan
-
Kirkpatrick-Seidel's
ultimate algorithm (PostScript)
-
More
about David Kirkpatrick
-
Qhull
Home Page
-
Convex
hulls and duality
-
Linear expected time algorithms
-
Via Bucket-Sorting
and Floor Functions (compressed PostScript file)
-
The
throw-away principle (PostScript)
-
A
fast convex hull algorithm - Algorithm of Akl and Toussaint (PDF file)
-
Convex hull algorithms for polygons:
-
3-Coins
Algorithm Tutorial (Greg Aloupis and Bohdan Kaluzny)
-
Melkman's
linear-time algorithm (Pierre Lang's tutorial with Java applet)
-
Another
tutorial on Melkman's algorithm
-
A
History of Linear-time Convex Hull Algorithms for Simple Polygons -
by Greg Aloupis
11. Visibility
(Hidden-Line Problems)
-
Visibility from a point
-
Visibility
from an edge (PostScript)
-
Visibility from a line
-
Visibility Graphs
-
Computing
visibility graphs of line segments and polygons
12. Updating
Triangulations of Points and Line Segments
-
Updating Triangulations:
-
Sergei
Sauchenko's Tutorial on inserting and deleting vertices and edges from
triangulations (with interactive Java applets)
13. Intersection
Problems
-
Intersecting convex polygons:
-
Slab method of Shamos and Hoey
-
More
about Michael Shamos
-
Eric
Plante's Tutorial on the Rotating-Caliper method (with interactive
Java applet)
-
A
simple linear algorithm for intersecting convex polygons (Rotating Caliper
method) (PostScript file)
-
Intersecting half-planes
-
Intersecting simple polygons
-
Applications
-
Linear Programming
-
Voronoi diagrams
-
Kernel of a polygon
14. Proximity
Graphs, Voronoi Diagrams and Polyhedral Computations
-
Minimum
spanning trees
-
Nearest neighbour graphs
-
The
Relative Neighbourhood Graph (PostScript)
-
Lune
(also vescica piscis
or lens)
-
The Gabriel graph
-
The Delaunay triangulation
-
Delaunay
Triangulations for Spatial Modelling
-
Finding
2-D Delaunay Trinagulations from 3-D Convex Hulls (interactive Java applet)
-
Comparison
of Delaunay TrinagulationAlgorithms
-
Computing
Constrained Delaunay Trinagulations in the Plane
-
Voronoi Diagrams:
-
The
Voronoi Web Site (Christopher Gold)
-
VoroGlide
(fantastic interactive Java applet for Voronoi diagrams and Delaunay triangulations)
-
Another
interactive applet for delaunay triangulations and Voronoi diagrams
-
A
Voronoi vertex is the circumcenter of its Delaunay triangle
-
David
Eppstein's Links for Voronoi diagrams and applications
-
Voronoi
Implementation (great applets!!!)
-
Tutorial
on Fortune's Voronoi Diagram Algorithm
-
Higher-Order
Voronoi Diagram Applet
-
Applications of Voronoi Diagrams:
-
Mark
Grundland's Fractals from Voronoi diagrams
-
Sphere of influence graphs (SIG's)
-
Richard
Unger's tutorial on SIG's (with interactive Java applet)
-
Proximity
Graphs (including a survey paper)
-
Alpha Shapes and Beta Skeletons:
-
Alpha shapes
-
François Bélair's
Tutorial on Alpha Shapes (with interactive Java applet and a super-duper
automated guided-tour demo)
-
Gallery
of alpha shapes
-
Code
for computing alpha-shapes (and convex hulls)
-
Beta skeletons:
-
Xiaoming
Zhong's Tutorial on Beta Skeletons (with interactive Java applet)
-
Polyhedral Computation:
-
Frequently
Asked Questions in Polyhedral Computation (by Komei Fukuda)
15. Linear Programming
-
What
is Linear Programming?
-
Introduction
to Linear Programming
-
Interactive
Linear Programming
-
The
Simplex Algorithm (Java Applet)
-
Linear programming problems in geometry
-
Megiddo's linear time algorithm
-
Geometric
Series
-
Prune-and-Search
Algorithm Applet
16. Facility
Location
-
The minimax facility location problem
-
The smallest enclosing circle:
-
An
O(n log n) algorithm (with interactive Java applet)
-
Smallest
Enclosing Ball Code
-
C++
Code for Smallest Enclosing Balls in all Dimensions
-
The
linear time algorithm of Megiddo and Dyer (Tutorial of Jacob Eliosoff and
Richard Unger with applet)
-
Generalizations to geodesic metrics
-
Constrained facility location problems
in the plane and on the sphere
-
A
survey of geometric facility location problems
17. Mobility
of Objects in Space
-
The
Match-Stick Game: Fabienne Lathuliere's Tutorial on Translation Separability
of Sets of Line Segments (with interactive Java applet)
-
Translation
separability of objects (compressed PostScript file)
-
Separating
objects in space (Tutorial by Kishore
Anand and Anatoly Lichatchev with EXPLOSIVE
applet!)interactive 4-bar linkage applet
-
The
Rhombic Dodecahedron
-
Separating
Two Monotone Polygons in Linear Time
-
Separating
Two Simple Polygons via Relative Convex Hulls
-
Geodesic Paths:
-
Geodesic (relative) convex hulls
-
Steve
Robbins' Tutorial on Relative Convex Hulls
-
Shortest-paths
for robotics planning (with Java applet)
-
The algorithm of Chazelle and Lee-Preparata
-
Linkages
-
A
historical introduction to linkages by Joseph Malkevitch
-
Interactive
4-bar linkage applet
-
Planar
Machines' web site. An invitation to Topology. (multiple link linkages!
fantastic site!!!)
-
Paucellier's
Linkage
-
Convexifying Polygons:
-
Linda
Sun's tutorial on generating self-avoiding polygons
18. Degeneracies
in Computational Geometry
-
General
position assumptions
-
What
is a degeneracy?
-
Some
examples of geometric degeneracies
-
Robustness
-
An
arithmetic for handling intrinsic degeneracies
-
Lower
bounds for detecting affine and spherical degeneracies
-
Avoiding
Algorithm-Induced Degeneracies: (PostScript)
-
No two points on a vertical line
-
No three points on a vertical plane
-
No two points with the same coordinates
-
and many many more
-
Computing
nice viewpoints of objects in space (PostScript)
19. Transversals
of Sets
-
The Philo Line (Philo of Byzantium):
-
Definition
and computation
-
Historical
survey and characterizations
-
Point-line duality:
-
Interactive
Java demos illustrating various definitions of duality
-
The space of transversals
-
Computing
shortest transversals
20. Arrangements
-
Arrangements of lines
-
Envelopes
of Arrangements of Lines (compressed PostScript file)
-
Arrangements of line segments
-
Arrangements of discs
-
Arrangements
of Jordan curves
21. Skeletons
of Polygons
-
The
medial axis
-
The
Straight-Line skeleton
22. Visualization
-
Nice Projections:
-
Map
projections
-
Regular
Projections and Knot Theory
-
Aperture-Angle Optimization Problems:
-
Viewing
a statue
-
Applet
for aperture angle demo
-
The
Spindle Torus
-
Kepler's Apples
and
Lemons
-
More
about Kepler
-
Aperture-angle
optimization problems in two dimensions (PostScript)
-
Aperture-angle
optimization problems in three dimensions (PostScript)
Teaching
Activities
Homepage
