Syllabus

Description

This is a reading and project course covering a range of topics related to geometric representation and computation.  We will study fundamental data structures and algorithms from computational geometry and computer graphics, their application to practical problems, and techniques for visual inspection of and interaction with geometric entities.

The aim of the course is to gain familiarity with the understanding, crafting, use, augmentation and visual inspection of geometric objects and data structures.   Specifically the course will have these major focuses:

Topics include winged-edge data structures; triangulations; Voronoi diagrams; convex hulls; arrangements; linear programming; line space and other fundamental geometric dualities.  Also spatial subdivisions, inverse range queries, ray casting, visibility computations, proximity/intersection queries.

Format

A typical class meeting will consist of an instructor or student presentation of papers and software, and a discussion of the material co-led by the student and instructor. Each lecture, one student will be expected (given several weeks' notice) to summarize the material for that lecture and help lead a discussion of the readings. One week before the student is to present, s/he will be expected to submit a "pre-talk" (a draft version of the overheads to be used) and an initial treatment of the "talking points" suggested by the teacher, as well as (of course) other discussion topics the student wishes to cover in class

Assignments

There will be several small programming assignments.  These are intended to get everyone familiar with the issues of crafting technically substantive and visually interesting manipulations of geometric entities.

Course project

Each student will, with a partner, propose and complete a substantial programming project related to interactive geometric computation. Many topics will be suggested, but students are of course free to propose their own project topic.  Acceptable projects include but are not limited to an implementation (and improvement) of an algorithm from a paper, a synthesis of techniques from several papers, or a work that explains or advances the state of the art. The projects are expected to have some research content and should be designed with that in mind.

Textbook and References

 

Computational Geometry:  Algorithms and Applications

Mark de Berg (Ed.), Marc van Kreveld, Mark Overmars, and Ottfried Schwarzkopf 
ISBN: 3540656200

Computational Geometry in C

Joseph O'Rourke

Computational Geometry: an Introduction

Franco P. Preparata, Michael Ian Shamos

 

Course Schedule (Spring 2008)

[modified: 2008/06/11 ]

TOPIC (TEXT)

[PRESENTER]

REFERENCE MATERIALS

(MUST CHECK FOR UPDATES)

DEMOS, APPLETS EXERCISE
Introduction (Ch. 1)

[Instructor]

What is computational geometry by Toussaint (localcopy)

Demos: convex hull, art gallery, 3D model search engine

Point Location (Ch. 6)

[陳相宇]

Preparata & Shamos (Ch.2) Demo: Manhattan point location
Convex Hull (Chs. 1&11)

[Instructor]

Divide and Conquer for CH

Demos: 1(Jarvis March), 2 (Graham Scan), 3 (Others)

convex hull
Line Segment Intersection (Ch. 2)

[陳行韜]

plane sweep example

Demos: 1

line segment intersection
Polygon Triangulation (Ch. 3)

[張筱懿] 

Supplement: from O'Rourke; Graham scan

ear-cutting

triangulate quiz
Orthogonal Range Search (Ch. 5)

[蕭佑閎] 

NNkdtree

Demo: 1, 2

Binary Search Tree (BST): tree, search, balancing

range-search quiz
Voronoi Diagram ( slide)

[張筱懿] 

collections(1); incremental (1,2); Fortune's Algorithm (1)

 

Text Ch.7 (2nd ed.)

Supplemental; Examples (1, 2)

Demo: 1, 2, 3, opengl

Siggraph [Hoff et al.99] (pdf,ppt, 2d_demo, 3d_demo)

Siggraph [Hausner01] 

Delaunay Triangulation (Ch. 9)

[周日辰] 

Ref: constrained delaunay (0, 1, 2, 3, 4, 5), 1

EMST

Demo: 1, 2, 3, 4 (about 4), MEC (1, 2) dt quiz
Binary Space Partition (Ch. 12)

[陳相宇]

DoomStyle BSP Tree, BSP faq, Ref (1), BSP in games

Demo: BSP applet; BSP_CD

bsp quiz
Robot Motion Planning (Chs. 13, 15)

[蔡依儒]

Mason's note, U.Bath, misc (1, 3, 4) Demo: piano mover, robotmotion
Quadtree (Ch. 14)

[i4]

gamedev.net (1,2), neighbor finding, Samet article

octree traversal, linear octree [1]

Demo: 1, 2

quadtree-quiz
Collision Detection; Hierarchical Bounding Volume

[i4]

taxonomy, obbtree, sweep-and-prune (supplement)

Ref: doug james, 1

SOLID, OPCODE cd-quiz
GJK algorithm

[周日辰]

GJK (supplement)

Ref: 1, 2

GJK applet gjk-quiz
Billboard cloud (Siggraph03)

[蔡依儒]

Ref: 1

 

AVI (1, 2)
Shape manipulation(Siggraph05)

[instructor]

Ref: 1 d2 shape distribution

Model Search Engine

advanced material

[instructor]

Melodic similarity (1, 2, 3) Ref: 1, 2, 3