
"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
  -  Convex Polygons:
-  Testing
the orientation of a simple polygon
-  Testing
the convexity of a polygon
  -  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
  -  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
  -  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)
  -  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
  -  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)