unc chapel hill m. c. lin comp290-72: computational geometry and applications tues/thurs 2:00pm -...

25
UNC Chapel Hill M. C. Lin COMP290-72: Computational Geometry and Applications Tues/Thurs 2:00pm - 3:15pm (SN 325) Ming C. Lin [email protected] http://www.cs.unc.edu/~lin http://www.cs.unc.edu/~lin/290- 72.html

Upload: mariah-hunt

Post on 02-Jan-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

UNC Chapel Hill M. C. Lin

COMP290-72: Computational Geometry and Applications

Tues/Thurs 2:00pm - 3:15pm (SN 325)

Ming C. Lin

[email protected]

http://www.cs.unc.edu/~lin

http://www.cs.unc.edu/~lin/290-72.html

UNC Chapel Hill M. C. Lin

Computational Geometry

The term first appeared in the 70’sOriginally referred to computational

aspects of solid/geometric modelingLater as the field of algorithm design

and analysis of discrete geometryAlgorithmic bases for many scientific &

engineering disciplines (GIS, astro-physics, robotics, CG, design, etc.)

UNC Chapel Hill M. C. Lin

Textbook & References

Computational Geometry: Algorithms and Applications (de Berg, van Kreveld, Overmars & Schwarzkofp), published by Springer Verlag 1997

Check out the book web site !!! Handbook on Discrete and Computational Geometry Applied Computational Geometry: Toward Geometric Engineering

Computational Geometry: An Introduction Through Randomized Algorithms

Robot Motion Planning Algorithms in Combinatorial Geometry Computational Geometry (An Introduction)

UNC Chapel Hill M. C. Lin

Goals

To get an appreciation of geometry

To understand considerations and tradeoffs in designing algorithms

To be able to read & analyze literature in computational geometry

UNC Chapel Hill M. C. Lin

Course Overview

Introduction to computational geometry and its applications in

Computer Graphics Geometric Modeling Robotics & Automation Vision & Imaging Scientific Computing Geographic Information Systems

UNC Chapel Hill M. C. Lin

Applications in Computer Graphics

Visibility CullingGlobal IlluminationWindowing & ClippingModel Simplification3D Polyhedral MorphingCollision Detection

UNC Chapel Hill M. C. Lin

Applications in Geometric Modeling

Boolean OperationsSurface IntersectionsFinite Element Mesh GenerationSurface FittingPolyhedral DecompositionManufacturing & Tolerancing

UNC Chapel Hill M. C. Lin

Applications in Robotics

Motion Planning– with known environment– sensor-based/online– non-holonomic– others

Assembly PlanningGrasping & Reaching

UNC Chapel Hill M. C. Lin

Applications in Vision & Imaging

Shape/Template MatchingPattern MatchingStructure from motionsShape Representation (Core)Motion Representation (KDS)

UNC Chapel Hill M. C. Lin

Other Applications

Computing overlays of mixed dataFinding the nearest “landmarks”Point location in mega databaseFinding unions of molecular surfacesVLSI design layout

UNC Chapel Hill M. C. Lin

Topics List

Geometric Data Structure, Algorithms, Implementation & Applications. Specifically

Proximity and Intersection Voronoi Diagram & Delaunay Triangulation Linear Programming in Lower Dimensions Geometric Searching & Queries Convex Hulls, Polytopes & Computations Arrangements of Hyperplanes

UNC Chapel Hill M. C. Lin

Course Work & Grades

Homework: 30%

(at least 3, mostly theoretical analysis)Class Presentation: 20%

(any topic related to the course)Final Project: 50%

(research oriented)

Active Class Participation: bonus

UNC Chapel Hill M. C. Lin

Class Presentation

By August 27, 1998 -

Choose a presentation topic & inform instructor

(Check out the tentative lecture schedule & topics!) One week before the presentation -

Submit a draft of presentation materials One lecture before the presentation -

Hand out copies of reading materials, if not available online via your web site

One day before the presentation -

Post the presentation materials on the web

(see the online instruction!!!)

UNC Chapel Hill M. C. Lin

Course Project

An improved implementation of a geometric algorithm

A synthesis of several techniquesIn-depth analysis on a chosen subject

(at least 25 state-of-the-art papers)

Novel, research-oriented

UNC Chapel Hill M. C. Lin

Course Project Deadlines

September 30, 1998 - Meet to discuss ideas

October 13, 1998 - Project Proposal and Inform the Instructor your project web site

November 12, 1998 - Progress Update

December 11, 1998 - Final Project Demo & In-Class Presentation

UNC Chapel Hill M. C. Lin

Some Project Ideas

Improve the robustness of geometric operations on non-linear primitives

Develop path planning techniques for navigating in the virtual worlds

Investigate the use of various techniques (nearest neighbors, medial axis, etc.) to construct a hierarchy bottom-up efficiently

Design visibility & simplification algorithm for dynamic environments (considering kinetic data structures, hierarchical representation, etc.)

And, more......

UNC Chapel Hill M. C. Lin

Geometric Algorithms & Software

Geometry Center at University of Minnesota: a comprehensive collection of geometric software

CGAL: Computational Geometry Algorithms Library (C++) LEDA: Library of Efficient Data types and Algorithms (C++) The Stony Brook Algorithm Repository: Implementation in C, C++,

Pascal and Fortran CMU/Ansys & U. Aachen: Finite element mesh generation University of Konstanz: VLSI routing problems CMU: The Computer Vision Homepage Rockerfeller University: Computational gene recognition

NRL: Machine learning resources

UNC Chapel Hill M. C. Lin

More Pointers

Jeff Erickson's Computational Geometry Page

David Eppstein's Geometry in Action

The Carleton Computational Geometry Resources

Check them out!!!

UNC Chapel Hill M. C. Lin

Weekly Reading Assignment

Chapters 1 and 2

(Textbook: CG - A&A)

UNC Chapel Hill M. C. Lin

Solving Geometric Problems

Thorough understanding of geometric properties of the problem

Proper application of algorithmic techniques and data structures

UNC Chapel Hill M. C. Lin

An Example: Convex Hull

A subset S of the plane is convex IFF for any pair of points p,q in S, the line seg(p,q) is completely contained in S.

The convex hull CH(S) of a set S is the smallest convex set that contains S.

CH(S) is the intersection of all convex sets that contain S.

UNC Chapel Hill M. C. Lin

Compute Convex Hulls

Input = set of points, S

Output = representation of CH(S)– a list of ordered (e.g. clockwise) points

that are vertices of CH(S)

UNC Chapel Hill M. C. Lin

Slow Convex Hull, CH(P)

1. E <- 0

2. for all ordered pairs (p,q) in PxP with p#q

3. do valid <- true

4. for all points r in P not equal to p or q

5. do if r lies to the left of line(p,q)

6. Then valid <- false

7. If valid then add the directed edge(p,q) to E

8. From E, construct a list of vertices of CH(P)

UNC Chapel Hill M. C. Lin

Problems

Degeneracies– multiple points on a line– multiple points on a plane– etc.

Robustness– incorrect results (invalid geometry) due to

numerical (e.g. truncation) errors

Performance– speed– storage

UNC Chapel Hill M. C. Lin

Improved Convex Hull

Incremental, divide & conquer, randomized and others (more later)

The convex hull of a set of points can be computed in O(n log n) time