Computational geometry: Schedule and links

Links: Here is a detailed schedule of the class, to be updated as the semester progresses:

1/20, 1/22 Introduction.
Finding 3 collinear points.
Finding the closest pair of points.

Lab: Unix warmup | Using make | Emacs and vim | C 101 | Basics I | Basics II
Reading: CLRS 33.4

Programming assignment 1 [finding collinear points] (due Tue 2/3)

1/28, 30 Geometric primitives (area of a triangle, collinear, left-of, segment intersection).
Reading: OR 1.3-1.5

Internet sites I found useful:

  • slides from CG class of Mark von Kreveld, Utrecht
2/4, 2/6, 2/10 Convex hull in 2D:
  • Properties.
  • Naive algorithm.
  • Gift wrapping.
  • Graham scan.
  • Speed-up heuristics and Andrew monotone chain algorithm.
  • Incremental algorithm.
  • [Divide-and-conquer algorithm].
  • CH lower bound.

Reading: OR 3.5, 3.6, 3.7, 3.8

Programming assignment 2 [CH with Graham scan] (due Tue 2/17)

Internet sites that I found useful:

2/12, 2/17 Line segment intersection:
  • Orthogonal line-segment intersection.
  • General segment intersection and Bentley-Ottman sweep.

Reading: chap 2.1 [3MC]

Internet links that I found useful:

  • slides from CG class of Mark von Kreveld, Utrecht
  • notes (by Michiel Smid)
Programming assignment 3 [Orthogonal segment intersection with line sweep] (due Thu Febr 26th)
2/19, 2/24 Art gallery problem.
  • Definition and properties.
  • Fisk's sufficiency proof.

Reading: chap 1 [OR]

Internet links that I found useful:

2/26, 3/3, 3/5 Polygon triangulation
  • Point in polygon.
  • Finding diagonals.
  • Finding ears.
  • Polygon triangulation in quadratic time via ear removal.
  • Monotone polygons. Triangulation of a monotone polygon.
  • Trapezoidalization. Partition into monotone polygons. An O(n lg n) triangulation algorithm.

Reading: chap 2 [OR]

Internet links that I found useful:

Programming assignment 4 [Testing segment intersection] (due Thu March 4th)
3/24, 3/26 Polygon triangulation via trapezoidalization: ending details.
Class feedback.
Point-in-polygon algorithms.
  • Triangulation of monotone polygons.
  • Trapezoidalization: from plane sweep to actual trapezoids.
  • Trapezoidalization: Diagonals create a partition into uni-monotone polygons.
  • Range searching in 1D
  • 2D: kd-trees
  • 2D: range trees

Reading: chap 5.1, 5.2, 5.3 [3MC]

Internet links that I found uesful:

  • Polygon triangulation: Notes Part I | Part II by Misha Kazdhan, JHU

Programming assignment 5 (due Thu 4/2)

3/31, 4/2, 4/7, 4/9, 4/14 Range searching. kd-trees. Range trees. Demos for assignment 5.
Reading: chap 5 [3MC]

Internet links I found useful:

Programming assignment 6: kd-trees (part I due 4/9, part II due 4/14)

4/16 Voronoi diagrams.
Slides: voronoi.pdf

Reading: Reading: chap 5 [OR]

Internet links I found useful:

4/21, 4/23 Voronoi and Delaunay. RIC. Applications.
Slides: delaunay.pdf

Internet links I found useful:

  • slides from CG class of Mark van Kreleved, Utrecht

Programming assignment 7: motion planning (due last class, Tue may 5th)

4/28, 4/30, 5/5 Motion planning.
Slides: motion.pdf

Internet sites that I found useful:


Last modified: Fri May 1 15:23:23 EDT 2015