Project for CS 290: Computational Geometry at Duke University. This project implements motion planning for a `point' robot among polygonal obstacles, contained in a rectangular region. In other words, the workspace is a rectangle with polygonal holes.
Figure 1: An example workspace with two polygonal obstacles, which are represented by two inner cycles of the polygon.
Figure 2: The vertical decomposition of the workspace, where the red segments erect downwards from obstacle vertices and blue segments erect upwards from obstacle vertices. Note that there are no vertical segments inside the inner cycles.
Figure 3: The roadmap, where we have a vertex per trapezoid and each vertical edge of the trapezoids.
Figure 4: The shortest path, by number of edges, from



