Advanced Algorithms Computational Geometry Prof. Karen Daniels. Fall, 2012

Size: px
Start display at page:

Download "Advanced Algorithms Computational Geometry Prof. Karen Daniels. Fall, 2012"

Transcription

1 UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Fall, 2012 O Rourke Chapter 7 Search & Intersection

2 Chapter 7 Search & Intersection Segment-Segment Intersection Segment-Triangle Intersection Point in Polygon Point in Polyhedron Intersection of Convex Polygons Intersection of Segments Intersection of Nonconvex Polygons Extreme Point of Convex Polygon Extremal Polytope Queries Planar Point Location

3 Segment-Segment Intersection Finding the actual intersection point Approach: parametric vs. slope/intercept parametric generalizes to more complex intersectionsi Parameterize each segment L cd c a b L ab d L cd c C=d-c b a A=b-a p(s)=a+sa L ab q(t)=c+tc d Intersection: values of s, t such that p(s) =q(t) : a+sa=c+tc

4 Segment-Triangle Intersection Determine if qr intersects plane π containing triangle T. useful in ray tracing Let N=(A,B,C) be normal to π r π :(x,y,z) (A,B,C)=D (i.e.π π = Ax + By + Cz = D) π c N Find normal N using cross-products involving a, b, c p T parameterize qr: p(t) = q + t(r-q) a b D ( q N) solve for t : t = q ( r q) N using t, find point of intersection p if it exists Classify relationship between p and T p is in T iff its projection p is in a projection* T of T to xy, xz or yz-plane +-- Barycentric coordinates left edge p +-+ Check results of 3 of tests for with ++respect to T : +++ means p inside T * avoid degeneracy by projecting out largest coordinate --+ T

5 Point in Polygon An application: GUI mouse click Winding number (see Guibas/Stolfi) standing at q, turn to follow border of P sum rotation to create signed angular turn + ccw - cw divide by 2π elegant but not practical: O(n) with large constant Ray crossings extend horizontal ray from q count number of intersections with P even q is outside P odd q is inside P beware degenerate intersections! Compare with using LeftOn test when polygon is convex P P O(n) q q

6 Winding number generalizes to 3D Point in Polyhedron uses solid angle (fraction of sphere surface used by cone at point) Ray crossing generalizes to 3D q inside P if odd number of crossings q outside P if even number of crossings Running Time?? (see next slide) P q r Assume each face is a triangle. Algorithm: : POINT in POLYHEDRON (P, R, q) Compute bounding radius R loop forever r 0 = random ray of length R r=q+r r 0 crossings = 0 for each triangle T of polyhedron P do SegTriInt(T, q, r) if degenerate intersection then go back to loop else increment crossings appropriately if crossings odd then q is inside P else q is outside P Exit

7 Point in Polyhedron P q r Expected time O(ρn) ρ = expected number of tries to get nondegenerate intersection Experiment: One combinatorially dense sample polyhedron has ρ ~ Claim: ρ = 1 + ε can be achieved for any ε > 0! For analysis, replace sphere with bounding cube. In worst case, L integer points on cube face disqualified by each edge of polyhedron. Probability of hitting a degeneracy = Let E = #edges (E x L) out of L 2 disqualified = E/L E is a constant, so choosing L large enough yields any desired ε = E/L. Assume each face is a triangle. Imagine integer discretization of L. Edge e kills a line of points on face of surrounding cube.

8 Intersection of Convex Polygons For nonconvex n-vertex P and m-vertex Q, the worst-case size complexity of P Q is in Ω(nm) For convex P, Q, size is only in O ( n + m) ) and can be computed in O ( n + m) time B A (example) Q P Algorithm: : INTERSECTION of CONVEX POLYGONS Choose A and B arbitrarily /* A is directed edge on P */ repeat /* B is directed edge on Q */ if A intersects B then /* A, B chase each other */ /* A, B meet at each */ Check for termination /* boundary crossing */ Update inside flag Advance either A or B depending on geometric conditions (see next slide) until both A and B cycle their polygons Handle cases: P Q P Q P Q = 0/ O(n+m)

9 Intersection of Convex Polygons If B aims towards line containing A but does not cross it then If B aims towards line containing A, but does not cross it, then advance B to close in on possible intersection with A.

10 Intersection of Segments Goal: Output-size sensitive polygon intersection algorithm Core Problem: Output-size sensitive line segment intersection algorithm Bentley-Ottmann plane sweep: O((n+k)logn) time k = number of intersection points in output Intuition: sweep line (discrete event ent simulation) First, review algorithm that returns TRUE iff there exists an intersection

11 Intersection of >2 Line Segments Sweep-Line Algorithmic Paradigm: 33.4 source: textbook Cormen et al.

12 Intersection of >2 Line Segments Sweep-Line Algorithmic Paradigm: source: textbook Cormen et al.

13 Intersection of >2 Line Segments Time to decide if any 2 segments intersect: segments intersect:o(n lg n) Balanced BST stores segments in order of intersection with sweep line. Associated operations take O(lgn) time. (See next slide.) Note that it exits as soon as one intersection is detected source: source: textbook Cormen et al.

14 Intersection of >2 Line Segments Balanced BST stores segments in order of intersection with sweep line. Associated operations take O(lgn) time. Each segment has a leaf node. At each internal node, store segment from rightmost leaf in its left subtree. What does this allow us to do? source: deberg et al.

15 Intersection of Segments Goal: Output-size sensitive line segment intersection algorithm that actually computes all intersection points Bentley-Ottmann plane sweep: O((n+k)log(n+k))= O((n+k)logn) time k = number of intersection points in output Intuition: sweep vertical line rightwards just before intersection, 2 segments are adjacent in sweep-line intersection structure check for intersection only adjacent segments insert intersection event into sweep-line structure event types: (example on previous slide) left endpoint of a segment right endpoint of a segment intersection between 2 segments swap order Improved to O(nlogn+k) [Chazelle/Edelsbrunner] l, Computational Geometry in C

16 Intersection of Nonconvex Polygons Variation on Bentley- Ottmann sweep Maintain status for each piece of sweep line: 0: exterior to P, Q P: inside P, outside Q Q: inside Q, outside P PQ: inside P, inside Q Useful for CAD/CAM P Q For n-vertex P,, m-vertex Q,, O((n+m n+m)log( )log(n+m)+k) time to compute: P Q P Q P \ Q

17 Extreme Point of Convex Polygon Algorithm: HIGHEST POINT of CONVEX POLYGON Initialize a and b /* highest h point is in [a,b] */ repeat forever c index midway from a to b if P[c] is locally highest then return c if A points up and C points down then [a,b] [a,c] /* highest point is in [a,c] */ else if A points down and C points up then [a,b] [c,b] /* highest point is in [c,b] */ else if A points up and C points up if P[a] is above P[c] then [a,b] [a,c] else [a,b] [c,b] /* highest point is in [c,b] */ else if A points down and C points down if P[a] is below P[c] then [a,b] [a,c] /* highest point is in [a,c] */ else [a,b] [c,b] /* highest point is in [c,b] */ I iti li d b A Geometric Binary Search C c b A Unimodality allows B Binary Search O(lg n) a

18 Stabbing a Convex Polygon Extreme-Finding algorithm can stab a convex polygon extreme in + u direction a +u y L x b extreme in - u direction If a and b straddle L, binary search on [a,b] yields x binary search on [b,a] yields y O(lg n)

19 Extremal Polytope Queries: Main Idea Form sequence of O(log n) simpler nested polytopes in O(n) time (see next slide) To answer a (w.l.o.g.. vertical) query in O(logn logn) time: (see slide after next) Find extreme with respect to inner polytope, then work outwards Need only check small number of candidate vertices in next polytope Key idea: independent sets in planar graphs are large ; vertices of low degree to construct next (inner) polytope, remove independent set of vertices deleting constant fraction of vertices at each step produces O(logn logn) polytopes lt (derivation derivation) O(log n) An independent set of a polytope graph of n vertices produced by INDEPENDENT SET has size at least n/18 (to be shown later).

20 Extremal Polytope Queries: Main Idea (continued)

21 Extremal Polytope Queries: Main Idea (continued) For maximal z query: Moving from P i+1 to P i is like raising a plane orthogonal to z axis from a i+1 1( (highest point on P i+1 ) to a i a 0

22 Extremal Polytope Queries Details Maximum Independent Set is NP-complete, but greedy heuristic performs well. Choose vertex of lowest degree, not adjacent to vertices already chosen. Algorithm 7.4: : INDEPENDENT SET Input: : graph G Output: : independent set I I 0 Mark all nodes of G of degree >= 9 while some nodes remain unmarked do Choose an unmarked node v Mark v and all neighbors of v I I U {v} spurious edge? Goal: tetrahedron triangulate polytope: lt use convex hll hull (d) octahedron (a) Icosahedron Schlegel diagram: 5 triangles meet at each vertex. There exist at least n/2 vertices of degree at most 8 (derivation derivation). An independent set of a polytope graph of n vertices produced by INDEPENDENT SET has size at least n/18 (derivation).

23 Extremal Polytope Queries Details (continued) (creation) i i +1 1 (creation)

24 Extremal Polytope Queries Details (continued) To use nested polytope hierarchy to answer an extreme point query: Find extreme with respect to inner polytope P k (brute-force search) Move from polytope P i+1 to P i Let a i and a i+1 be uniquely highest h vertices of P i and P i+1. Then (Lemma ) either: a i = a i+1 or a i+1 is the highest among the vertices adjacent to a i (See proof sketch in next slide.) (Assume w.l.o.g.. vertical query direction) π (Plane effect )

25 Extremal Polytope Queries Dtil Details (continued) Lemma : (repeated) Let a i and a i+1 be uniquely highest vertices of P i and P i+1. Then either: a i = a i+1 or a i+1 is the highest among the vertices adjacent to a i Proof Sketch: (by cases) a i is vertex of both P i and P i+1 a i = a i+1 else a i deleted in construction of P i+1 Let b i+1 = highest vertex of P i+1 among those adjacent to a i in P i Claim: b i+1 is highest vertex of P i+1 Proof uses polygonal-faced cone See book for further details But we still need bound on # vertices adjacent to a i+1

26 Extremal Polytope Queries Dtil Details (continued) Lemma7103:Leta : Let a i and a i+1 be uniquely highest vertices of P i and P i+1. Then either (to provide constant-time search): a i = a i+1 or a i is the highest among the parents of the extreme edges L i+1 and R i+1 Proof Sketch: π Project P i+1 onto plane orthogonal to π (e.g. xz plane) Let L i+1, R i+1 = 2 edges of P i+1 projecting to 2 edges of P i+1 incident to a i+1 Parents of edge are vertices of P i from L π i+1 = R i+1 which it derives (during P i+1 creation) tetrahedron New extreme edges are close to the old. projected See p for remaining details. onto xz plane P i+1

27 Extremal Polytope Queries Summary Algorithm: EXTREME POINT of a POLYTOPE Input: polytope P and direction vector u Output: vertex a of P extreme in u direction Construct nested polytope p hierarchy P = P 0 0,, P 1 1,,...,, P k a k vertex of P k extreme in u direction Compute L k and R k for i = k - 1, k - 2,...,1, 0 do a i extreme vertex among a i+1 and parents of L i+1 and R i+1 if a i = a i+1 then i i 1 for all edges incident to a i do π u P k P 0 save extreme edges L i and R i else (a i = a i+1 ) compute L i from L i+1 etc... After O(n) time and space preprocessing, a polytope extreme-point query can be answered in O(log n) time

28 Planar Point Location Goal: Given a planar subdivision of n vertices, preprocess it so that point location query can be quickly answered. A polygonal planar subdivision can be preprocessed in O(n) time and space for O(log n) query. 2D version/variant of independent set/nested approach ( may need to triangulate polygonal faces) Monotone subdivision approach* Randomized dtrapezoidal decomposition* i * See next slides.

29 Planar Point Location (continued) Monotone subdivision approach: -Partition subdivision (e.g. Voronoi diagram) into horizontal strips. -Double binary search: -Vertical search on strips to locate query point between 2 separators -Horizontal search to locate it within 1 strip -O(log 2 n) query time

30 Planar Point Location (continued) And now for something completely different As foreshadowed in Ch. 2 (polygon partitioning/triangulation) Seidel s randomized trapezoidal decomposition for non-crossing segments: * * O(nlogn) construction Assume no 2 points are at same height. time: extend horizontal line through each endpoint. O(logn) query time. * can build binary tree

31 Planar Point Location (continued) Lemma allows us to incrementally build binary search tree. 3 types of nodes: 1. internal X nodes, which branch left or right of a segment s i 2. internal Y nodes, which branch above or below a segment endpoint 3. Leaf trapezoid nodes. Identify each trapezoid cut by s 1. B C

32 Planar Point Location (continued)

33 Planar Point Location (continued)

34 Planar Point Location (continued) query point q search path for query point q

Computational Geometry Overview from Cormen, et al.

Computational Geometry Overview from Cormen, et al. UMass Lowell Computer Science 91.503 Graduate Algorithms Prof. Karen Daniels Spring, 2014 Computational Geometry Overview from Cormen, et al. Chapter 33 (with additional material from other sources) 1

More information

Advanced Algorithms Computational Geometry Prof. Karen Daniels. Fall, 2012

Advanced Algorithms Computational Geometry Prof. Karen Daniels. Fall, 2012 UMass Lowell Computer Science 91.504 Advanced Algorithms Computational Geometry Prof. Karen Daniels Fall, 2012 Voronoi Diagrams & Delaunay Triangulations O Rourke: Chapter 5 de Berg et al.: Chapters 7,

More information

Line segment intersection. Family of intersection problems

Line segment intersection. Family of intersection problems CG Lecture 2 Line segment intersection Intersecting two line segments Line sweep algorithm Convex polygon intersection Boolean operations on polygons Subdivision overlay algorithm 1 Family of intersection

More information

Computational Geometry

Computational Geometry Motivation Motivation Polygons and visibility Visibility in polygons Triangulation Proof of the Art gallery theorem Two points in a simple polygon can see each other if their connecting line segment is

More information

Trapezoidal Maps. Notes taken from CG lecture notes of Mount (pages 60 69) Course page has a copy

Trapezoidal Maps. Notes taken from CG lecture notes of Mount (pages 60 69) Course page has a copy Trapezoidal Maps Notes taken from CG lecture notes of Mount (pages 60 69) Course page has a copy Trapezoidal Maps S={s 1,s 2,..., s n } is the set of line segments segments don t intersect, but can touch

More information

CS 532: 3D Computer Vision 14 th Set of Notes

CS 532: 3D Computer Vision 14 th Set of Notes 1 CS 532: 3D Computer Vision 14 th Set of Notes Instructor: Philippos Mordohai Webpage: www.cs.stevens.edu/~mordohai E-mail: Philippos.Mordohai@stevens.edu Office: Lieb 215 Lecture Outline Triangulating

More information

3D convex hulls. Computational Geometry [csci 3250] Laura Toma Bowdoin College

3D convex hulls. Computational Geometry [csci 3250] Laura Toma Bowdoin College 3D convex hulls Computational Geometry [csci 3250] Laura Toma Bowdoin College Convex Hull in 3D The problem: Given a set P of points in 3D, compute their convex hull convex polyhedron 2D 3D polygon

More information

Polygon Partitioning. Lecture03

Polygon Partitioning. Lecture03 1 Polygon Partitioning Lecture03 2 History of Triangulation Algorithms 3 Outline Monotone polygon Triangulation of monotone polygon Trapezoidal decomposition Decomposition in monotone mountain Convex decomposition

More information

Line Arrangement. Chapter 6

Line Arrangement. Chapter 6 Line Arrangement Chapter 6 Line Arrangement Problem: Given a set L of n lines in the plane, compute their arrangement which is a planar subdivision. Line Arrangements Problem: Given a set L of n lines

More information

Polygon decomposition. Motivation: Art gallery problem

Polygon decomposition. Motivation: Art gallery problem CG Lecture 3 Polygon decomposition 1. Polygon triangulation Triangulation theory Monotone polygon triangulation 2. Polygon decomposition into monotone pieces 3. Trapezoidal decomposition 4. Convex decomposition

More information

Computational Geometry

Computational Geometry Casting a polyhedron CAD/CAM systems CAD/CAM systems allow you to design objects and test how they can be constructed Many objects are constructed used a mold Casting Casting A general question: Given

More information

CS 372: Computational Geometry Lecture 3 Line Segment Intersection

CS 372: Computational Geometry Lecture 3 Line Segment Intersection CS 372: Computational Geometry Lecture 3 Line Segment Intersection Antoine Vigneron King Abdullah University of Science and Technology September 9, 2012 Antoine Vigneron (KAUST) CS 372 Lecture 3 September

More information

GEOMETRIC SEARCHING PART 1: POINT LOCATION

GEOMETRIC SEARCHING PART 1: POINT LOCATION GEOMETRIC SEARCHING PART 1: POINT LOCATION PETR FELKEL FEL CTU PRAGUE felkel@fel.cvut.cz https://cw.felk.cvut.cz/doku.php/courses/a4m39vg/start Based on [Berg] and [Mount] Version from 3.10.2014 Geometric

More information

Indiana State Math Contest Geometry

Indiana State Math Contest Geometry Indiana State Math Contest 018 Geometry This test was prepared by faculty at Indiana University - Purdue University Columbus Do not open this test booklet until you have been advised to do so by the test

More information

Computational Geometry

Computational Geometry Computational Geometry 600.658 Convexity A set S is convex if for any two points p, q S the line segment pq S. S p S q Not convex Convex? Convexity A set S is convex if it is the intersection of (possibly

More information

Intersection. Segment-Segment Intersection

Intersection. Segment-Segment Intersection Intersection Segment-Segment Intersection Segment-Segment Intersection 1. For many application, the floating-point coordinates of the point of intersection are needed 2. We will need this to compute the

More information

3D convex hulls. Computational Geometry [csci 3250] Laura Toma Bowdoin College

3D convex hulls. Computational Geometry [csci 3250] Laura Toma Bowdoin College 3D convex hulls Computational Geometry [csci 3250] Laura Toma Bowdoin College Convex Hulls The problem: Given a set P of points, compute their convex hull 2D 3D 2D 3D polygon polyhedron Polyhedron region

More information

Collision and Proximity Queries

Collision and Proximity Queries Collision and Proximity Queries Dinesh Manocha (based on slides from Ming Lin) COMP790-058 Fall 2013 Geometric Proximity Queries l Given two object, how would you check: If they intersect with each other

More information

CMSC 754 Computational Geometry 1

CMSC 754 Computational Geometry 1 CMSC 754 Computational Geometry 1 David M. Mount Department of Computer Science University of Maryland Fall 2005 1 Copyright, David M. Mount, 2005, Dept. of Computer Science, University of Maryland, College

More information

CPSC / Sonny Chan - University of Calgary. Collision Detection II

CPSC / Sonny Chan - University of Calgary. Collision Detection II CPSC 599.86 / 601.86 Sonny Chan - University of Calgary Collision Detection II Outline Broad phase collision detection: - Problem definition and motivation - Bounding volume hierarchies - Spatial partitioning

More information

COMPUTATIONAL GEOMETRY

COMPUTATIONAL GEOMETRY Thursday, September 20, 2007 (Ming C. Lin) Review on Computational Geometry & Collision Detection for Convex Polytopes COMPUTATIONAL GEOMETRY (Refer to O'Rourke's and Dutch textbook ) 1. Extreme Points

More information

Computational Geometry

Computational Geometry Windowing queries Windowing Windowing queries Zoom in; re-center and zoom in; select by outlining Windowing Windowing queries Windowing Windowing queries Given a set of n axis-parallel line segments, preprocess

More information

Dynamic Collision Detection

Dynamic Collision Detection Distance Computation Between Non-Convex Polyhedra June 17, 2002 Applications Dynamic Collision Detection Applications Dynamic Collision Detection Evaluating Safety Tolerances Applications Dynamic Collision

More information

K-structure, Separating Chain, Gap Tree, and Layered DAG

K-structure, Separating Chain, Gap Tree, and Layered DAG K-structure, Separating Chain, Gap Tree, and Layered DAG Presented by Dave Tahmoush Overview Improvement on Gap Tree and K-structure Faster point location Encompasses Separating Chain Better storage Designed

More information

Lecture 3: Art Gallery Problems and Polygon Triangulation

Lecture 3: Art Gallery Problems and Polygon Triangulation EECS 396/496: Computational Geometry Fall 2017 Lecture 3: Art Gallery Problems and Polygon Triangulation Lecturer: Huck Bennett In this lecture, we study the problem of guarding an art gallery (specified

More information

CS 532: 3D Computer Vision 11 th Set of Notes

CS 532: 3D Computer Vision 11 th Set of Notes 1 CS 532: 3D Computer Vision 11 th Set of Notes Instructor: Philippos Mordohai Webpage: www.cs.stevens.edu/~mordohai E-mail: Philippos.Mordohai@stevens.edu Office: Lieb 215 Lecture Outline Line Intersection

More information

CS6100: Topics in Design and Analysis of Algorithms

CS6100: Topics in Design and Analysis of Algorithms CS6100: Topics in Design and Analysis of Algorithms Guarding and Triangulating Polygons John Augustine CS6100 (Even 2012): Guarding and Triangulating Polygons The Art Gallery Problem A simple polygon is

More information

Computational Geometry

Computational Geometry Planar point location Point location Introduction Planar point location Strip-based structure Point location problem: Preprocess a planar subdivision such that for any query point q, the face of the subdivision

More information

CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension

CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension CS 372: Computational Geometry Lecture 10 Linear Programming in Fixed Dimension Antoine Vigneron King Abdullah University of Science and Technology November 7, 2012 Antoine Vigneron (KAUST) CS 372 Lecture

More information

Week 7 Convex Hulls in 3D

Week 7 Convex Hulls in 3D 1 Week 7 Convex Hulls in 3D 2 Polyhedra A polyhedron is the natural generalization of a 2D polygon to 3D 3 Closed Polyhedral Surface A closed polyhedral surface is a finite set of interior disjoint polygons

More information

2 A Plane Sweep Algorithm for Line Segment Intersection

2 A Plane Sweep Algorithm for Line Segment Intersection EECS 396/496: Computational Geometry Fall 2017 Lecturer: Huck Bennett Lecture 2: Line Segment Intersection In this lecture, we will study the problem of computing all intersections of a set of line segmentn

More information

arxiv: v1 [cs.cg] 8 Jan 2018

arxiv: v1 [cs.cg] 8 Jan 2018 Voronoi Diagrams for a Moderate-Sized Point-Set in a Simple Polygon Eunjin Oh Hee-Kap Ahn arxiv:1801.02292v1 [cs.cg] 8 Jan 2018 Abstract Given a set of sites in a simple polygon, a geodesic Voronoi diagram

More information

Motion Planning. O Rourke, Chapter 8

Motion Planning. O Rourke, Chapter 8 O Rourke, Chapter 8 Outline Translating a polygon Moving a ladder Shortest Path (Point-to-Point) Goal: Given disjoint polygons in the plane, and given positions s and t, find the shortest path from s to

More information

Rubber bands. Chapter Rubber band representation

Rubber bands. Chapter Rubber band representation Chapter 1 Rubber bands In the previous chapter, we already used the idea of looking at the graph geometrically, by placing its nodes on the line and replacing the edges by rubber bands. Since, however,

More information

Week 8 Voronoi Diagrams

Week 8 Voronoi Diagrams 1 Week 8 Voronoi Diagrams 2 Voronoi Diagram Very important problem in Comp. Geo. Discussed back in 1850 by Dirichlet Published in a paper by Voronoi in 1908 3 Voronoi Diagram Fire observation towers: an

More information

Linear Programming in Small Dimensions

Linear Programming in Small Dimensions Linear Programming in Small Dimensions Lekcija 7 sergio.cabello@fmf.uni-lj.si FMF Univerza v Ljubljani Edited from slides by Antoine Vigneron Outline linear programming, motivation and definition one dimensional

More information

Lesson 05. Mid Phase. Collision Detection

Lesson 05. Mid Phase. Collision Detection Lesson 05 Mid Phase Collision Detection Lecture 05 Outline Problem definition and motivations Generic Bounding Volume Hierarchy (BVH) BVH construction, fitting, overlapping Metrics and Tandem traversal

More information

Convex Hulls (3D) O Rourke, Chapter 4

Convex Hulls (3D) O Rourke, Chapter 4 Convex Hulls (3D) O Rourke, Chapter 4 Outline Polyhedra Polytopes Euler Characteristic (Oriented) Mesh Representation Polyhedra Definition: A polyhedron is a solid region in 3D space whose boundary is

More information

Computational Geometry

Computational Geometry Orthogonal Range Searching omputational Geometry hapter 5 Range Searching Problem: Given a set of n points in R d, preprocess them such that reporting or counting the k points inside a d-dimensional axis-parallel

More information

Field: We have been doing geometry eg linear programming. But in computational geometry, key difference in focus: low dimension d

Field: We have been doing geometry eg linear programming. But in computational geometry, key difference in focus: low dimension d 1 Geometry Field: We have been doing geometry eg linear programming But in computational geometry, key difference in focus: low dimension d Lots of algorithms that are great for d small, but exponential

More information

Voronoi diagrams Delaunay Triangulations. Pierre Alliez Inria

Voronoi diagrams Delaunay Triangulations. Pierre Alliez Inria Voronoi diagrams Delaunay Triangulations Pierre Alliez Inria Voronoi Diagram Voronoi Diagram Voronoi Diagram The collection of the non-empty Voronoi regions and their faces, together with their incidence

More information

Motivation: Art gallery problem. Polygon decomposition. Art gallery problem: upper bound. Art gallery problem: lower bound

Motivation: Art gallery problem. Polygon decomposition. Art gallery problem: upper bound. Art gallery problem: lower bound CG Lecture 3 Polygon decomposition 1. Polygon triangulation Triangulation theory Monotone polygon triangulation 2. Polygon decomposition into monotone pieces 3. Trapezoidal decomposition 4. Conex decomposition

More information

GEOMETRIC TOOLS FOR COMPUTER GRAPHICS

GEOMETRIC TOOLS FOR COMPUTER GRAPHICS GEOMETRIC TOOLS FOR COMPUTER GRAPHICS PHILIP J. SCHNEIDER DAVID H. EBERLY MORGAN KAUFMANN PUBLISHERS A N I M P R I N T O F E L S E V I E R S C I E N C E A M S T E R D A M B O S T O N L O N D O N N E W

More information

Geometric Queries for Ray Tracing

Geometric Queries for Ray Tracing CSCI 420 Computer Graphics Lecture 16 Geometric Queries for Ray Tracing Ray-Surface Intersection Barycentric Coordinates [Angel Ch. 11] Jernej Barbic University of Southern California 1 Ray-Surface Intersections

More information

CMSC 754 Computational Geometry 1

CMSC 754 Computational Geometry 1 CMSC 754 Computational Geometry 1 David M. Mount Department of Computer Science University of Maryland Fall 2005 1 Copyright, David M. Mount, 2005, Dept. of Computer Science, University of Maryland, College

More information

An Introduction to Computational Geometry: Arrangements and Duality

An Introduction to Computational Geometry: Arrangements and Duality An Introduction to Computational Geometry: Arrangements and Duality Joseph S. B. Mitchell Stony Brook University Some images from [O Rourke, Computational Geometry in C, 2 nd Edition, Chapter 6] Arrangement

More information

Flavor of Computational Geometry. Convex Hull in 2D. Shireen Y. Elhabian Aly A. Farag University of Louisville

Flavor of Computational Geometry. Convex Hull in 2D. Shireen Y. Elhabian Aly A. Farag University of Louisville Flavor of Computational Geometry Convex Hull in 2D Shireen Y. Elhabian Aly A. Farag University of Louisville February 2010 Agenda Introduction Definitions of Convexity and Convex Hulls Naïve Algorithms

More information

Advanced Algorithms Computational Geometry Prof. Karen Daniels. Spring, 2010

Advanced Algorithms Computational Geometry Prof. Karen Daniels. Spring, 2010 UMass Lowell Computer Science 91.504 Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2010 Lecture 3 O Rourke Chapter 3: 2D Convex Hulls Thursday, 2/18/10 Chapter 3 2D Convex Hulls

More information

Computational Geometry 2D Convex Hulls

Computational Geometry 2D Convex Hulls Computational Geometry 2D Convex Hulls Joseph S. B. Mitchell Stony Brook University Chapter 2: Devadoss-O Rourke Convexity p p Set X is convex if p,q X pq X q q convex non-convex Point p X is an extreme

More information

1. Meshes. D7013E Lecture 14

1. Meshes. D7013E Lecture 14 D7013E Lecture 14 Quadtrees Mesh Generation 1. Meshes Input: Components in the form of disjoint polygonal objects Integer coordinates, 0, 45, 90, or 135 angles Output: A triangular mesh Conforming: A triangle

More information

Divided-and-Conquer for Voronoi Diagrams Revisited. Supervisor: Ben Galehouse Presenter: Xiaoqi Cao

Divided-and-Conquer for Voronoi Diagrams Revisited. Supervisor: Ben Galehouse Presenter: Xiaoqi Cao Divided-and-Conquer for Voronoi Diagrams Revisited Supervisor: Ben Galehouse Presenter: Xiaoqi Cao Outline Introduction Generalized Voronoi Diagram Algorithm for building generalized Voronoi Diagram Applications

More information

Lecture 3 February 9, 2010

Lecture 3 February 9, 2010 6.851: Advanced Data Structures Spring 2010 Dr. André Schulz Lecture 3 February 9, 2010 Scribe: Jacob Steinhardt and Greg Brockman 1 Overview In the last lecture we continued to study binary search trees

More information

Voronoi diagram and Delaunay triangulation

Voronoi diagram and Delaunay triangulation Voronoi diagram and Delaunay triangulation Ioannis Emiris & Vissarion Fisikopoulos Dept. of Informatics & Telecommunications, University of Athens Computational Geometry, spring 2015 Outline 1 Voronoi

More information

Computational Geometry. Lecture 17

Computational Geometry. Lecture 17 Computational Geometry Lecture 17 Computational geometry Algorithms for solving geometric problems in 2D and higher. Fundamental objects: Basic structures: point line segment line point set polygon L17.2

More information

Voronoi Diagrams and Delaunay Triangulations. O Rourke, Chapter 5

Voronoi Diagrams and Delaunay Triangulations. O Rourke, Chapter 5 Voronoi Diagrams and Delaunay Triangulations O Rourke, Chapter 5 Outline Preliminaries Properties and Applications Computing the Delaunay Triangulation Preliminaries Given a function f: R 2 R, the tangent

More information

Computational Geometry [csci 3250]

Computational Geometry [csci 3250] Computational Geometry [csci 3250] Laura Toma Bowdoin College Polygon Triangulation Polygon Triangulation The problem: Triangulate a given polygon. (output a set of diagonals that partition the polygon

More information

Polygon Triangulation. (slides partially by Daniel Vlasic )

Polygon Triangulation. (slides partially by Daniel Vlasic ) Polygon Triangulation (slides partially by Daniel Vlasic ) Triangulation: Definition Triangulation of a simple polygon P: decomposition of P into triangles by a maximal set of non-intersecting diagonals

More information

Planar Point Location

Planar Point Location C.S. 252 Prof. Roberto Tamassia Computational Geometry Sem. II, 1992 1993 Lecture 04 Date: February 15, 1993 Scribe: John Bazik Planar Point Location 1 Introduction In range searching, a set of values,

More information

High-Dimensional Computational Geometry. Jingbo Shang University of Illinois at Urbana-Champaign Mar 5, 2018

High-Dimensional Computational Geometry. Jingbo Shang University of Illinois at Urbana-Champaign Mar 5, 2018 High-Dimensional Computational Geometry Jingbo Shang University of Illinois at Urbana-Champaign Mar 5, 2018 Outline 3-D vector geometry High-D hyperplane intersections Convex hull & its extension to 3

More information

Line Arrangements. Applications

Line Arrangements. Applications Computational Geometry Chapter 9 Line Arrangements 1 Line Arrangements Applications On the Agenda 2 1 Complexity of a Line Arrangement Given a set L of n lines in the plane, their arrangement A(L) is the

More information

CS770/870 Spring 2017 Ray Tracing Implementation

CS770/870 Spring 2017 Ray Tracing Implementation Useful ector Information S770/870 Spring 07 Ray Tracing Implementation Related material:angel 6e: h.3 Ray-Object intersections Spheres Plane/Polygon Box/Slab/Polyhedron Quadric surfaces Other implicit/explicit

More information

Solutions to problem set 1

Solutions to problem set 1 Massachusetts Institute of Technology Handout 5 6.838: Geometric Computation October 4, 2001 Professors Piotr Indyk and Seth Teller Solutions to problem set 1 (mostly taken from the solution set of Jan

More information

Convex Hulls in Three Dimensions. Polyhedra

Convex Hulls in Three Dimensions. Polyhedra Convex Hulls in Three Dimensions Polyhedra Polyhedron 1.A polyhedron is the generalization of a 2- D polygon to 3-D A finite number of flat polygonal faces The boundary or surface of a polyhedron - Zero-dimensional

More information

Computational Geometry Lecture Duality of Points and Lines

Computational Geometry Lecture Duality of Points and Lines Computational Geometry Lecture Duality of Points and Lines INSTITUTE FOR THEORETICAL INFORMATICS FACULTY OF INFORMATICS 11.1.2016 Duality Transforms We have seen duality for planar graphs and duality of

More information

The Geometry of Carpentry and Joinery

The Geometry of Carpentry and Joinery The Geometry of Carpentry and Joinery Pat Morin and Jason Morrison School of Computer Science, Carleton University, 115 Colonel By Drive Ottawa, Ontario, CANADA K1S 5B6 Abstract In this paper we propose

More information

Voronoi Diagrams and Delaunay Triangulation slides by Andy Mirzaian (a subset of the original slides are used here)

Voronoi Diagrams and Delaunay Triangulation slides by Andy Mirzaian (a subset of the original slides are used here) Voronoi Diagrams and Delaunay Triangulation slides by Andy Mirzaian (a subset of the original slides are used here) Voronoi Diagram & Delaunay Triangualtion Algorithms Divide-&-Conquer Plane Sweep Lifting

More information

Chapter 8. Voronoi Diagrams. 8.1 Post Oce Problem

Chapter 8. Voronoi Diagrams. 8.1 Post Oce Problem Chapter 8 Voronoi Diagrams 8.1 Post Oce Problem Suppose there are n post oces p 1,... p n in a city. Someone who is located at a position q within the city would like to know which post oce is closest

More information

Polygon Triangulation

Polygon Triangulation Polygon Triangulation Definition Simple Polygons 1. A polygon is the region of a plane bounded by a finite collection of line segments forming a simple closed curve. 2. Simple closed curve means a certain

More information

January 10-12, NIT Surathkal Introduction to Graph and Geometric Algorithms

January 10-12, NIT Surathkal Introduction to Graph and Geometric Algorithms Geometric data structures Sudebkumar Prasant Pal Department of Computer Science and Engineering IIT Kharagpur, 721302. email: spp@cse.iitkgp.ernet.in January 10-12, 2012 - NIT Surathkal Introduction to

More information

An Implementation of a Near-Linear Polygon Triangulation Algorithm for General Polygons

An Implementation of a Near-Linear Polygon Triangulation Algorithm for General Polygons An Implementation of a Near-Linear Polygon Triangulation Algorithm for General Polygons Abstract In 1991 Seidel found a practical algorithm for triangulating simple polygons with an expected running time

More information

Reconstructing Orthogonal Polyhedra from Putative Vertex Sets

Reconstructing Orthogonal Polyhedra from Putative Vertex Sets Reconstructing Orthogonal Polyhedra from Putative Vertex Sets Therese Biedl 1 and Burkay Genc 1 David R. Cheriton School of Computer Science, University of Waterloo, Waterloo ON N2L 3G1, Canada biedl@uwaterloo.ca,

More information

Computational Geometry

Computational Geometry Windowing queries Windowing Windowing queries Zoom in; re-center and zoom in; select by outlining Windowing Windowing queries Windowing Windowing queries Given a set of n axis-parallel line segments, preprocess

More information

Planar convex hulls (I) Computational Geometry [csci 3250] Laura Toma Bowdoin College

Planar convex hulls (I) Computational Geometry [csci 3250] Laura Toma Bowdoin College Planar convex hulls (I) Computational Geometry [csci 3250] Laura Toma Bowdoin College Convex Hull Given a set P of points in 2D, their convex hull is the smallest convex polygon that contains all points

More information

The Farthest Point Delaunay Triangulation Minimizes Angles

The Farthest Point Delaunay Triangulation Minimizes Angles The Farthest Point Delaunay Triangulation Minimizes Angles David Eppstein Department of Information and Computer Science UC Irvine, CA 92717 November 20, 1990 Abstract We show that the planar dual to the

More information

CMPS 3130/6130 Computational Geometry Spring Voronoi Diagrams. Carola Wenk. Based on: Computational Geometry: Algorithms and Applications

CMPS 3130/6130 Computational Geometry Spring Voronoi Diagrams. Carola Wenk. Based on: Computational Geometry: Algorithms and Applications CMPS 3130/6130 Computational Geometry Spring 2015 Voronoi Diagrams Carola Wenk Based on: Computational Geometry: Algorithms and Applications 2/19/15 CMPS 3130/6130 Computational Geometry 1 Voronoi Diagram

More information

Math 311. Polyhedra Name: A Candel CSUN Math

Math 311. Polyhedra Name: A Candel CSUN Math 1. A polygon may be described as a finite region of the plane enclosed by a finite number of segments, arranged in such a way that (a) exactly two segments meets at every vertex, and (b) it is possible

More information

1/60. Geometric Algorithms. Lecture 1: Introduction. Convex Hulls

1/60. Geometric Algorithms. Lecture 1: Introduction. Convex Hulls 1/60 Geometric Algorithms Lecture 1: Introduction Convex Hulls Geometric algorithms scope 2/60 Geometry algorithms (practice): Study of geometric problems that arise in various applications and how algorithms

More information

1. CONVEX POLYGONS. Definition. A shape D in the plane is convex if every line drawn between two points in D is entirely inside D.

1. CONVEX POLYGONS. Definition. A shape D in the plane is convex if every line drawn between two points in D is entirely inside D. 1. CONVEX POLYGONS Definition. A shape D in the plane is convex if every line drawn between two points in D is entirely inside D. Convex 6 gon Another convex 6 gon Not convex Question. Why is the third

More information

The Topology of Bendless Orthogonal Three-Dimensional Graph Drawing. David Eppstein Computer Science Dept. Univ. of California, Irvine

The Topology of Bendless Orthogonal Three-Dimensional Graph Drawing. David Eppstein Computer Science Dept. Univ. of California, Irvine The Topology of Bendless Orthogonal Three-Dimensional Graph Drawing David Eppstein Computer Science Dept. Univ. of California, Irvine Graph drawing: visual display of symbolic information Vertices and

More information

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON S RBE 550 Collision Detection Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11 Euler Angle RBE

More information

1 The range query problem

1 The range query problem CS268: Geometric Algorithms Handout #12 Design and Analysis Original Handout #12 Stanford University Thursday, 19 May 1994 Original Lecture #12: Thursday, May 19, 1994 Topics: Range Searching with Partition

More information

Computational Geometry

Computational Geometry Lecture 1: Introduction and convex hulls Geometry: points, lines,... Geometric objects Geometric relations Combinatorial complexity Computational geometry Plane (two-dimensional), R 2 Space (three-dimensional),

More information

Polygon Triangulation

Polygon Triangulation Polygon Triangulation The problem: Triangulate a given polygon. (output a set of diagonals that partition the polygon into triangles). Computational Geometry [csci 3250] Polygon Triangulation Laura Toma

More information

CMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013

CMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013 CMSC 425: Lecture 9 Geometric Data Structures for Games: Geometric Graphs Thursday, Feb 21, 2013 Reading: Today s materials is presented in part in Computational Geometry: Algorithms and Applications (3rd

More information

Flavor of Computational Geometry. Voronoi Diagrams. Shireen Y. Elhabian Aly A. Farag University of Louisville

Flavor of Computational Geometry. Voronoi Diagrams. Shireen Y. Elhabian Aly A. Farag University of Louisville Flavor of Computational Geometry Voronoi Diagrams Shireen Y. Elhabian Aly A. Farag University of Louisville March 2010 Pepperoni Sparse Pizzas Olive Sparse Pizzas Just Two Pepperonis A person gets the

More information

Chapter 12 and 11.1 Planar graphs, regular polyhedra, and graph colorings

Chapter 12 and 11.1 Planar graphs, regular polyhedra, and graph colorings Chapter 12 and 11.1 Planar graphs, regular polyhedra, and graph colorings Prof. Tesler Math 184A Fall 2017 Prof. Tesler Ch. 12: Planar Graphs Math 184A / Fall 2017 1 / 45 12.1 12.2. Planar graphs Definition

More information

Computational Geometry

Computational Geometry for map overlay Lecture 2: for map overlay 1 Map layers Map overlay In a geographic information system (GIS) data is stored in separate layers A layer stores the geometric information about some theme,

More information

Lecture 16: Voronoi Diagrams and Fortune s Algorithm

Lecture 16: Voronoi Diagrams and Fortune s Algorithm contains q changes as a result of the ith insertion. Let P i denote this probability (where the probability is taken over random insertion orders, irrespective of the choice of q). Since q could fall through

More information

CHAPTER 2 REVIEW COORDINATE GEOMETRY MATH Warm-Up: See Solved Homework questions. 2.2 Cartesian coordinate system

CHAPTER 2 REVIEW COORDINATE GEOMETRY MATH Warm-Up: See Solved Homework questions. 2.2 Cartesian coordinate system CHAPTER 2 REVIEW COORDINATE GEOMETRY MATH6 2.1 Warm-Up: See Solved Homework questions 2.2 Cartesian coordinate system Coordinate axes: Two perpendicular lines that intersect at the origin O on each line.

More information

Figure 2.1: An example of a convex set and a nonconvex one.

Figure 2.1: An example of a convex set and a nonconvex one. Convex Hulls 2.1 Definitions 2 Convexity is the key to understanding and simplifying geometry, and the convex hull plays a role in geometry akin to the sorted order for a collection of numbers. So what

More information

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into 2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel

More information

Approximate Nearest Neighbor Problem: Improving Query Time CS468, 10/9/2006

Approximate Nearest Neighbor Problem: Improving Query Time CS468, 10/9/2006 Approximate Nearest Neighbor Problem: Improving Query Time CS468, 10/9/2006 Outline Reducing the constant from O ( ɛ d) to O ( ɛ (d 1)/2) in uery time Need to know ɛ ahead of time Preprocessing time and

More information

3. Voronoi Diagrams. 3.1 Definitions & Basic Properties. Examples :

3. Voronoi Diagrams. 3.1 Definitions & Basic Properties. Examples : 3. Voronoi Diagrams Examples : 1. Fire Observation Towers Imagine a vast forest containing a number of fire observation towers. Each ranger is responsible for extinguishing any fire closer to her tower

More information

Accelerating Geometric Queries. Computer Graphics CMU /15-662, Fall 2016

Accelerating Geometric Queries. Computer Graphics CMU /15-662, Fall 2016 Accelerating Geometric Queries Computer Graphics CMU 15-462/15-662, Fall 2016 Geometric modeling and geometric queries p What point on the mesh is closest to p? What point on the mesh is closest to p?

More information

Collision Detection CS434. Daniel G. Aliaga Department of Computer Science Purdue University

Collision Detection CS434. Daniel G. Aliaga Department of Computer Science Purdue University Collision Detection CS434 Daniel G. Aliaga Department of Computer Science Purdue University Some Applications Animations/games Robotic planning Haptics Some collision detection approaches Minkowski Sum

More information

Geometry 1-1. Non-collinear Points not on the same line. Need at least 3 points to be non-collinear since two points are always collinear

Geometry 1-1. Non-collinear Points not on the same line. Need at least 3 points to be non-collinear since two points are always collinear Name Geometry 1-1 Undefined terms terms which cannot be defined only described. Point, line, plane Point a location in space Line a series of points that extends indefinitely in opposite directions. It

More information

Polygon Triangulation. (slides partially by Daniel Vlasic )

Polygon Triangulation. (slides partially by Daniel Vlasic ) Polygon Triangulation (slides partially by Daniel Vlasic ) Triangulation: Definition Triangulation of a simple polygon P: decomposition of P into triangles by a maximal set of non-intersecting diagonals

More information

arxiv: v1 [cs.cg] 25 Jul 2016

arxiv: v1 [cs.cg] 25 Jul 2016 Unfolding Convex Polyhedra via Radially Monotone Cut Trees arxiv:1607.07421v1 [cs.cg] 25 Jul 2016 Joseph O Rourke July 26, 2016 Abstract A notion of radially monotone cut paths is introduced as an effective

More information

Intersecting Simple Surfaces. Dr. Scott Schaefer

Intersecting Simple Surfaces. Dr. Scott Schaefer Intersecting Simple Surfaces Dr. Scott Schaefer 1 Types of Surfaces Infinite Planes Polygons Convex Ray Shooting Winding Number Spheres Cylinders 2/66 Infinite Planes Defined by a unit normal n and a point

More information

TOURNAMENT OF THE TOWNS, Glossary

TOURNAMENT OF THE TOWNS, Glossary TOURNAMENT OF THE TOWNS, 2003 2004 Glossary Absolute value The size of a number with its + or sign removed. The absolute value of 3.2 is 3.2, the absolute value of +4.6 is 4.6. We write this: 3.2 = 3.2

More information