242-535 ada: 14. intro to cg1 objective o give a non-technical overview of computational geometry,...

26
242-535 ADA: 14. Intro to CG 1 • Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm Design and Analysis (ADA) 242-535, Semester 1 2014-2015 14. Introduction to Computational Geometry

Upload: raymond-warner

Post on 11-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

1

• Objectiveo give a non-technical overview of

Computational geometry, concentrating on its main application areas

Algorithm Design and Analysis

(ADA)242-535, Semester 1 2014-2015

14. Introduction to Computational

Geometry

Page 2: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

2

1. What is Computational Geometry?2. Uses in Computer Graphics3. Uses in Robotics4. Uses in GIS5. Uses in CAD/CAM6. A Textbook

Overview

Page 3: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

1. What is Computational

Geometry?

The systematic study of algorithms and data structures for geometric objects, with a focus on exact algorithms that are asymptotically fast.

Page 4: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

4

CG in Context

TheoreticalComputer

Science

Applied Computer Science

AppliedMath

Geometry

ComputationalGeometry

Efficient Geometric Algorithms

Design Analyze

Apply

Page 5: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

2. Uses in Computer Graphics

· Intersect geometric primitives (lines, polygons, polyhedra, etc.)

· Determine primitives lying in a region.

· Hidden surface removal – determine the visible part of a 3D scene while discard the occluded part from a view point.

· Deal with moving objects and detect collisions.

Page 6: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

6

• Is point q inside simple polygon P?

Point in Polygon Testing

P n-gon

q

Naïve: O(n) per test

CG: O(log n)

Page 7: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

7

• Given n line segments in the plane, determine:o Does some pair intersect? (DETECT)o Compute all points of intersection (REPORT)

Segment Intersection

Naïve: O(n2)

CG: O(n log n) detect, O(k+n log n) report

Page 8: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

8

• Find “smallest” (tightest fitting) pair of bounding boxes

• Motivation: o Best outer approximationo Bounding volume hierarchies

The 2-Box Cover Problem

Page 9: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

Triangulation of Polygons

Page 10: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

10

Collision Detection

Page 11: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

3. Uses in Robotics

· Motion planning

· Grasping

· Parts orienting

· Optimal placement

Page 12: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

ProximityClosest coffee shop in PSU?

Voronoi diagram

Delaunay triangulation

Page 13: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

13

• A Voronoi diagram is a way of dividing space into smaller regions.

• A set of points (called seeds, sites, or "coffee shops") is specified beforehand and for each seed there will be a corresponding region consisting of all points closer to that seed than to any other.

• The regions are called Voronoi cells.

• Closely related to Delaunay triangulation

A Voronoi Diagram

Page 14: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

Voronoi Diagrams in Nature

Dragonfly wingHoneycomb

Constrained soap bubbles

Giraffe pigmentation

Page 15: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

15

• A Delaunay triangulation for a set points results in a series of triangles connecting those points.

• A circle drawn through the three points in a triangle will contain no other points.

Delaunay Triangulation

Delaunaytriangulation

Page 16: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

Path Planning

Robot

How can a robot find a short route to the destination that avoids all obstacles?

Page 17: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

17

Mobile Robotic GuardWatchman Route Problem

Page 18: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

Determine the smallest number of cameras needed to see all of a given area.

5 cameras are enough to see everywhere (what about 4 cameras? 3?)

How Many Cameras?

viewable areafor this camera

Page 19: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

4. Uses in GISStorage of geographical data (contours of countries, height of mountains, course of rivers, population, roads, electricity lines, etc.)

· Large amount of data – requiring efficient algorithms.

· Geographic data storage (e.g., map of roads for car positioning or computer display).

· Interpolation between nearby sample data points

· Overlay of multiple maps.

Page 20: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

5. Uses in CAD/CAM

· Intersection, union, and decomposition of objects.

· Testing on product specifications.

· Design for assembly – modeling and simulation of assembly.

· Testing design for feasibility.

Page 21: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

21

Bounding Volume Hierarchy

BV-tree: Level 0

Page 22: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

22

BV-tree: Level 1

Page 23: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

23

BV-tree: Level 2

Page 24: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

24

BV-tree: Level 5

Page 25: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

25

BV-tree: Level 8

Page 26: 242-535 ADA: 14. Intro to CG1 Objective o give a non-technical overview of Computational geometry, concentrating on its main application areas Algorithm

242-535 ADA: 14. Intro to CG

26

• Computational Geometry in Co Joseph O’Rourke,

Cambridge University Press, 2nd ed.,1998

5. A Textbook

http://cs.smith.edu/~orourke/books/compgeom.html