250 likes | 269 Views
COMP290-72: Computational Geometry and Applications. Tues/Thurs 2:00pm - 3:15pm (SN 325) Ming C. Lin lin@cs.unc.edu http://www.cs.unc.edu/~lin http://www.cs.unc.edu/~lin/290-72.html. Computational Geometry. The term first appeared in the 70’s
E N D
COMP290-72: Computational Geometry and Applications Tues/Thurs 2:00pm - 3:15pm (SN 325) Ming C. Lin lin@cs.unc.edu http://www.cs.unc.edu/~lin http://www.cs.unc.edu/~lin/290-72.html M. C. Lin
Computational Geometry • The term first appeared in the 70’s • Originally referred to computational aspects of solid/geometric modeling • Later as the field of algorithm design and analysis of discrete geometry • Algorithmic bases for many scientific & engineering disciplines (GIS, astro-physics, robotics, CG, design, etc.) 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) 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 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 M. C. Lin
Applications in Computer Graphics • Visibility Culling • Global Illumination • Windowing & Clipping • Model Simplification • 3D Polyhedral Morphing • Collision Detection M. C. Lin
Applications in Geometric Modeling • Boolean Operations • Surface Intersections • Finite Element Mesh Generation • Surface Fitting • Polyhedral Decomposition • Manufacturing & Tolerancing M. C. Lin
Applications in Robotics • Motion Planning • with known environment • sensor-based/online • non-holonomic • others • Assembly Planning • Grasping & Reaching M. C. Lin
Applications in Vision & Imaging • Shape/Template Matching • Pattern Matching • Structure from motions • Shape Representation (Core) • Motion Representation (KDS) M. C. Lin
Other Applications • Computing overlays of mixed data • Finding the nearest “landmarks” • Point location in mega database • Finding unions of molecular surfaces • VLSI design layout 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 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 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!!!) M. C. Lin
Course Project • An improved implementation of a geometric algorithm • A synthesis of several techniques • In-depth analysis on a chosen subject (at least 25 state-of-the-art papers) Novel, research-oriented 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 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...... 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 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!!! M. C. Lin
Weekly Reading Assignment Chapters 1 and 2 (Textbook: CG - A&A) M. C. Lin
Solving Geometric Problems • Thorough understanding of geometric properties of the problem • Proper application of algorithmic techniques and data structures 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. 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) 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) 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 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 M. C. Lin