250 likes | 269 Views
Explore the field of computational geometry, its applications, algorithms, and software. Dive into geometric data structures, linear programming, convex hulls, Voronoi diagrams, and more. Gain insights into computer graphics, robotics, vision, and scientific computing.
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