Growing and Shrinking Polygons for Random Testing of Computational Geometry Algorithms

Size: px
Start display at page:

Download "Growing and Shrinking Polygons for Random Testing of Computational Geometry Algorithms"

Transcription

1 Growing and Shrinking Polygons for Random Testing of Computational Geometry Algorithms Experience Report Ilya Sergey ICFP 2016 September 20th, 2016

2 Polygons

3 Polygons

4 Polygons

5 Polygons

6 Polygons are Trees

7 Polygons are Trees We can grow them;

8 Polygons are Trees We can grow them; We can also trim them;

9 Polygons are Trees We can grow them; We can also trim them; We can use QuickCheck to test their properties.

10

11

12

13 Would you like to run a scenario project this year?

14 Would you like to run a scenario project this year? Sure, why not.

15 Scenario Project Requirements

16 Scenario Project Requirements For 2nd year undergrads, team work,

17 Scenario Project Requirements For 2nd year undergrads, team work, One week-long,

18 Scenario Project Requirements For 2nd year undergrads, team work, One week-long, Should involve math and programming,

19 Scenario Project Requirements For 2nd year undergrads, team work, One week-long, Should involve math and programming, Challenging for students, but easy to assess,

20 Scenario Project Requirements For 2nd year undergrads, team work, One week-long, Should involve math and programming, Challenging for students, but easy to assess, To be delivered in about a month.

21 Scenario Project Requirements For 2nd year undergrads, team work, One week-long, Should involve math and programming, Challenging for students, but easy to assess, To be delivered in about a month.

22

23

24

25

26 How many guards do we really need?

27 How many guards do we really need? The answer depends on the shape of the gallery.

28 How many guards do we really need? The answer depends on the shape of the gallery.

29 How many guards do we really need? The answer depends on the shape of the gallery.

30 How many guards do we really need?

31 How many guards do we really need?

32 How many guards do we really need?

33 How many guards do we really need?

34 Art Gallery Problem For a given gallery (polygon), find the minimal set of guards positions, so together the guards can see the whole interior.

35 Art Gallery Problem For a given gallery (polygon), find the minimal set of guards positions, so together the guards can see the whole interior. NP-hard

36 Project: Art Gallery Competition Find the best solutions for a collection of large polygons.

37 Project: Art Gallery Competition Find the best solutions for a collection of large polygons. 58 vertices 5 guards

38 Organizers TODO

39 Organizers TODO Problem generator; Polygons with different features (convex, rectangular, etc.)

40 Organizers TODO Problem generator; Polygons with different features (convex, rectangular, etc.) Solution checker with online feedback geometric machinery (triangulation, visibility, ) web-server

41 Organizers TODO Problem generator; Polygons with different features (convex, rectangular, etc.) Solution checker with online feedback geometric machinery (triangulation, visibility, ) web-server Make sure that it all works.

42 Organizers TODO Problem generator; Polygons with different features (convex, rectangular, etc.) Solution checker with online feedback geometric machinery (triangulation, visibility, ) web-server Make sure that it all works.

43 Organizers TODO Problem generator; Polygons with different features (convex, rectangular, etc.) Solution checker with online feedback geometric machinery (triangulation, visibility, ) web-server Make sure that it all works.

44 Organizers TODO Problem generator; Polygons with different features (convex, rectangular, etc.) Solution checker with online feedback geometric machinery (triangulation, visibility, ) web-server Make sure that it all works.

45 Growing polygons

46 Growing polygons Primitive polygons with specific features

47 Growing polygons Primitive polygons with specific features

48 Seed Growing polygons

49 Seed Growing polygons

50 Growing polygons

51 Growing polygons

52 Growing polygons

53 Growing polygons

54 Growing polygons

55 Growing polygons

56 Growing polygons

57 Growing polygons

58 Growing polygons

59 Growing polygons

60 Growing polygons

61 Algorithm for growing polygons 1. Pick a primitive polygon; 2. Locate a segment on a host polygon edge; 3. Scale, rotate and attach the primitive; check for self-intersections 4. Repeat

62 Abstract polygon generator trait PolygonGenerator extends GeneratorPrimitives { val seeds : List[Polygon] val primitives : List[(Int) => Polygon] val locate : Double => Option[(Double, Double)] val seedfreqs val primfreqs : List[Int] : List[Int] val generations : Int }...

63 Abstract polygon generator trait PolygonGenerator extends GeneratorPrimitives { val seeds : List[Polygon] val primitives : List[(Int) => Polygon] val locate : Double => Option[(Double, Double)] val seedfreqs val primfreqs : List[Int] : List[Int] val generations : Int }...

64 Abstract polygon generator trait PolygonGenerator extends GeneratorPrimitives { val seeds : List[Polygon] val primitives : List[(Int) => Polygon] val locate : Double => Option[(Double, Double)] val seedfreqs val primfreqs : List[Int] : List[Int] val generations : Int }...

65 Abstract polygon generator trait PolygonGenerator extends GeneratorPrimitives { val seeds : List[Polygon] val primitives : List[(Int) => Polygon] val locate : Double => Option[(Double, Double)] val seedfreqs val primfreqs : List[Int] : List[Int] val generations : Int }...

66 Generating contest problems Rectilinear

67 Generating contest problems Quasi-convex

68 Generating contest problems Crazy

69 Organizers TODO Problem generator; Polygons with different features (convex, rectangular, etc.) Solution checker with online feedback geometric machinery (triangulation, visibility, ) web-server Make sure that it all works.

70 Organizers TODO Problem generator; Polygons with different features (convex, rectangular, etc.) Solution checker with online feedback geometric machinery (triangulation, visibility, ) web-server Make sure that it all works.

71 Testing with ScalaCheck

72 Testing with ScalaCheck Triangulation of a polygon of size N: centre of each triangle lies within a polygon; triangulation generates N 2 (possibly degenerate) triangles;

73 Testing with ScalaCheck Triangulation of a polygon of size N: centre of each triangle lies within a polygon; triangulation generates N 2 (possibly degenerate) triangles; Joe-Simpson algorithm for visibility polygons (VPs): a vertex of a VP is also within the original polygon; every VP s edge is within the original polygon; a random point within a VP is indeed visible from its origin;

74 Testing with ScalaCheck Triangulation of a polygon of size N: centre of each triangle lies within a polygon; triangulation generates N 2 (possibly degenerate) triangles; Joe-Simpson algorithm for visibility polygons (VPs): a vertex of a VP is also within the original polygon; every VP s edge is within the original polygon; a random point within a VP is indeed visible from its origin; Solution visibility checker: a refutation (if it exists) is within the original polygon; a refutation for a set of guards is not within any of their VPs;

75 Testing with ScalaCheck Triangulation of a polygon of size N: centre of each triangle lies within a polygon; triangulation generates N 2 (possibly degenerate) triangles; Joe-Simpson algorithm for visibility polygons (VPs): a vertex of a VP is also within the original polygon; every VP s edge is within the original polygon; a random point within a VP is indeed visible from its origin; Solution visibility checker: a refutation (if it exists) is within the original polygon; a refutation for a set of guards is not within any of their VPs; Basic algorithm for solving AGP by Fisk: delivers a solution of size within the boundary N/3 ; the solution checker finds no refutations for its result.

76 How well did that work?

77 How well did that work? Multiple bugs (>20) due to inaccurate treatment of floating points;

78 How well did that work? Multiple bugs (>20) due to inaccurate treatment of floating points; Several bugs (~10) due to misreading of the textbook algorithms or simplifications in their descriptions;

79 How well did that work? Multiple bugs (>20) due to inaccurate treatment of floating points; Several bugs (~10) due to misreading of the textbook algorithms or simplifications in their descriptions; Two bugs in the Joe-Simpson algorithm itself;

80 How well did that work? Multiple bugs (>20) due to inaccurate treatment of floating points; Several bugs (~10) due to misreading of the textbook algorithms or simplifications in their descriptions; Two bugs in the Joe-Simpson algorithm itself; Bonus: an undocumented behavior in the state-of-the-art CGAL library (written in C++ using exact arithmetics).

81 How well did that work? Multiple bugs (>20) due to inaccurate treatment of floating points; Several bugs (~10) due to misreading of the textbook algorithms or simplifications in their descriptions; Two bugs in the Joe-Simpson algorithm itself; Bonus: an undocumented behavior in the state-of-the-art CGAL library (written in C++ using exact arithmetics).

82 Testing basic visibility algorithm Main component for checking arbitrary solutions; Original description (1986) has a number of simplifications and is given in pseudocode.

83 Testing basic visibility algorithm import RandomRectilinearPolygonGenerator._ property("all visibility polygons lie within the original polygon") = forall { (p : Polygon) => val guards = p.vertices val vps = guards.map(visibilitypolygon(p, _)) "Every edge of a visibility polygon is within ${p}" : { val edges = for (vp <- vps; e <- vp.edges) yield e edges.forall(p.containssegment) } }

84 Testing basic visibility algorithm import RandomRectilinearPolygonGenerator._ property("all visibility polygons lie within the original polygon") = forall { (p : Polygon) => val guards = p.vertices val vps = guards.map(visibilitypolygon(p, _)) "Every edge of a visibility polygon is within ${p}" : { val edges = for (vp <- vps; e <- vp.edges) yield e edges.forall(p.containssegment) } }

85 Testing basic visibility algorithm import RandomRectilinearPolygonGenerator._ property("all visibility polygons lie within the original polygon") = forall { (p : Polygon) => val guards = p.vertices val vps = guards.map(visibilitypolygon(p, _)) "Every edge of a visibility polygon is within ${p}" : { val edges = for (vp <- vps; e <- vp.edges) yield e edges.forall(p.containssegment) } }

86 Testing basic visibility algorithm import RandomRectilinearPolygonGenerator._ property("all visibility polygons lie within the original polygon") = forall { (p : Polygon) => val guards = p.vertices val vps = guards.map(visibilitypolygon(p, _)) "Every edge of a visibility polygon is within ${p}" : { val edges = for (vp <- vps; e <- vp.edges) yield e edges.forall(p.containssegment) } }

87 Bug in Joe-Simpson algorithm Randomly generated, 260 vertices, guards in every node

88 Bug in Joe-Simpson algorithm Randomly generated, 260 vertices, guards in every node??!

89 Shrinking Polygons

90 Trimming Shrinking Polygons

91 Reconstructing polygon generation

92 Reconstructing polygon generation

93 Reconstructing polygon generation Attachment tree

94 Trimming polygons

95 Trimming polygons

96 Shrinking strategy Build the attachment tree while constructing a random polygon; Construct all its subtrees; Render the corresponding trimmed polygons.

97 Bug in Joe-Simpson algorithm Randomly generated, 260 vertices, guards in every node

98 Bug in Joe-Simpson algorithm Randomly generated, 260 vertices, guards in every node

99 Bug in Joe-Simpson algorithm After trimming, 20 vertices

100 Bug in Joe-Simpson algorithm Removed irrelevant guards

101 Bug in Joe-Simpson algorithm

102 Bug in Joe-Simpson algorithm

103 Bug in Joe-Simpson algorithm... intersectwithwindow(v(i), v(i + 1), s.top, windowend) match { } case Some(p) => s.push(p) advance(v, s, i) case _ => scan(v, s, i, windowend, ccw)...

104 Bug in Joe-Simpson algorithm... intersectwithwindow(v(i), v(i + 1), s.top, windowend) match { } case Some(p) if!(windowend.isdefined && p =~= windowend) => s.push(p) advance(v, s, i) case _ => scan(v, s, i, windowend, ccw)...

105 Implementation effort Geometric primitives and procedures: 1450 LOC Server infrastructure: 1500 LOC Testing framework: 350 LOC

106 Running the Art Gallery Competition

107 Running the Art Gallery Competition 94 participants, 24 teams, 2360 submissions in five days

108 Running the Art Gallery Competition 94 participants, 24 teams, 2360 submissions in five days Server running 24/5 for different teams, solution processed concurrently no crashes during the week one non-critical bug in server logic (fixed without restarting)

109 Running the Art Gallery Competition 94 participants, 24 teams, 2360 submissions in five days Server running 24/5 for different teams, solution processed concurrently no crashes during the week one non-critical bug in server logic (fixed without restarting) Most of the solutions: textbook algorithm with optimizations;

110 Running the Art Gallery Competition 94 participants, 24 teams, 2360 submissions in five days Server running 24/5 for different teams, solution processed concurrently no crashes during the week one non-critical bug in server logic (fixed without restarting) Most of the solutions: textbook algorithm with optimizations; The winning team implemented the state-of-the art algorithm (2014) using linear programming;

111 Fri The Wed Tue Mon

112 To take away

113 To take away FP works great for rapid development of non-trivial and robust geometric applications;

114 To take away FP works great for rapid development of non-trivial and robust geometric applications; QuickCheck-ing CG with polygons is feasible and efficient in practice;

115 To take away FP works great for rapid development of non-trivial and robust geometric applications; QuickCheck-ing CG with polygons is feasible and efficient in practice; Polygons can be grown and trimmed, just like trees.

116 To take away FP works great for rapid development of non-trivial and robust geometric applications; QuickCheck-ing CG with polygons is feasible and efficient in practice; Polygons can be grown and trimmed, just like trees. Thanks!

Scenario Week 4: Art Gallery Competition

Scenario Week 4: Art Gallery Competition Scenario Week 4: Art Gallery Competition Organisers' Report scenario@cs.ucl.ac.uk 26 February 2016 The Week 94 participants 24 teams 1892 468 submissions for Part 2 One submissions for Part 1 subtle server

More information

Computational Geometry [csci 3250]

Computational Geometry [csci 3250] Computational Geometry [csci 3250] Laura Toma Bowdoin College The Art Gallery Problem The Art Gallery Problem Imagine an art gallery whose floor plan is a simple polygon, and a guard (a point) inside the

More information

The Art Gallery Problem

The Art Gallery Problem The Art Gallery Problem Imagine an art gallery whose floor plan is a simple polygon, and a guard (a point) inside the gallery. Computational Geometry [csci 3250] The Art Gallery Problem Laura Toma Bowdoin

More information

Growing and Shrinking Polygons for Random Testing of Computational Geometry Algorithms

Growing and Shrinking Polygons for Random Testing of Computational Geometry Algorithms Growing and Shrinking Polygons for Random Testing of Computational Geometry Algorithms Experience Report Ilya Sergey University College London, UK i.sergey@ucl.ac.uk Abstract This paper documents our experience

More information

Experience Report: Growing and Shrinking Polygons for Random Testing of Computational Geometry Algorithms

Experience Report: Growing and Shrinking Polygons for Random Testing of Computational Geometry Algorithms Experience Report: Growing and Shrinking Polygons for Random Testing of Computational Geometry Algorithms Ilya Sergey University College London, UK i.sergey@ucl.ac.uk Abstract This paper documents our

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

Projects & Polygon Triangulation

Projects & Polygon Triangulation Computational Geometry Lecture Projects & INSTITUTE FOR THEORETICAL INFORMATICS FACULTY OF INFORMATICS Tamara Mchedlidze Darren Strash 02.11.2015 1 Projects 2 Project Specifications Groups: 2 or 3 students,

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

Outline. CGAL par l exemplel. Current Partners. The CGAL Project.

Outline. CGAL par l exemplel. Current Partners. The CGAL Project. CGAL par l exemplel Computational Geometry Algorithms Library Raphaëlle Chaine Journées Informatique et GéomG ométrie 1 er Juin 2006 - LIRIS Lyon Outline Overview Strengths Design Structure Kernel Convex

More information

Practical Linear Algebra: A Geometry Toolbox

Practical Linear Algebra: A Geometry Toolbox Practical Linear Algebra: A Geometry Toolbox Third edition Chapter 18: Putting Lines Together: Polylines and Polygons Gerald Farin & Dianne Hansford CRC Press, Taylor & Francis Group, An A K Peters Book

More information

Lecture 11 Combinatorial Planning: In the Plane

Lecture 11 Combinatorial Planning: In the Plane CS 460/560 Introduction to Computational Robotics Fall 2017, Rutgers University Lecture 11 Combinatorial Planning: In the Plane Instructor: Jingjin Yu Outline Convex shapes, revisited Combinatorial planning

More information

Coverage and Search Algorithms. Chapter 10

Coverage and Search Algorithms. Chapter 10 Coverage and Search Algorithms Chapter 10 Objectives To investigate some simple algorithms for covering the area in an environment To understand how to break down an environment into simple convex pieces

More information

Luiz Fernando Martha André Pereira

Luiz Fernando Martha André Pereira IRSES Project TUG - Graz, Austria June 2014 Numerical simulation in technical sciences Computer Graphics for Engineering Luiz Fernando Martha André Pereira Speakers A little bit about us Research Group

More information

The Art Gallery Problem: An Overview and Extension to Chromatic Coloring and Mobile Guards

The Art Gallery Problem: An Overview and Extension to Chromatic Coloring and Mobile Guards The Art Gallery Problem: An Overview and Extension to Chromatic Coloring and Mobile Guards Nicole Chesnokov May 16, 2018 Contents 1 Introduction 2 2 The Art Gallery Problem 3 2.1 Proof..................................

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

Week 2 Polygon Triangulation

Week 2 Polygon Triangulation Week 2 Polygon Triangulation What is a polygon? Last week A polygonal chain is a connected series of line segments A closed polygonal chain is a polygonal chain, such that there is also a line segment

More information

Ma/CS 6b Class 26: Art Galleries and Politicians

Ma/CS 6b Class 26: Art Galleries and Politicians Ma/CS 6b Class 26: Art Galleries and Politicians By Adam Sheffer The Art Gallery Problem Problem. We wish to place security cameras at a gallery, such that they cover it completely. Every camera can cover

More information

Preferred directions for resolving the non-uniqueness of Delaunay triangulations

Preferred directions for resolving the non-uniqueness of Delaunay triangulations Preferred directions for resolving the non-uniqueness of Delaunay triangulations Christopher Dyken and Michael S. Floater Abstract: This note proposes a simple rule to determine a unique triangulation

More information

AMS 345/CSE 355 Computational Geometry

AMS 345/CSE 355 Computational Geometry AMS 345/CSE 355 Computational Geometry Lecture: Polygons, Guarding Joe Mitchell Do You Like Puzzles? Come to the new Stony Brook Puzzle Society Meets: Friday 1:05-2:30 pm at CSE 2120 Organizer: Pramod

More information

Project 1: Convex hulls and line segment intersection

Project 1: Convex hulls and line segment intersection MCS 481 / David Dumas / Spring 2014 Project 1: Convex hulls and line segment intersection Due at 10am on Monday, February 10 0. Prerequisites For this project it is expected that you already have CGAL

More information

Three applications of Euler s formula. Chapter 10

Three applications of Euler s formula. Chapter 10 Three applications of Euler s formula Chapter 10 A graph is planar if it can be drawn in the plane R without crossing edges (or, equivalently, on the -dimensional sphere S ). We talk of a plane graph if

More information

Professor: Padraic Bartlett. Lecture 9: Trees and Art Galleries. Week 10 UCSB 2015

Professor: Padraic Bartlett. Lecture 9: Trees and Art Galleries. Week 10 UCSB 2015 Math 7H Professor: Padraic Bartlett Lecture 9: Trees and Art Galleries Week 10 UCSB 2015 1 Prelude: Graph Theory This talk uses the mathematical concepts of graphs from our previous class. In particular,

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

Polygon reconstruction from local observations

Polygon reconstruction from local observations Polygon reconstruction from local observations work by D. Bilò, J. Chalopin, S. Das, Y. Disser, B. Gfeller, M. Mihalák, S. Suri, E. Vicari, P. Widmayer MITACS, Ottawa, Jan 31, 2011 Robots with Little Sensing

More information

2D Drawing Primitives

2D Drawing Primitives THE SIERPINSKI GASKET We use as a sample problem the drawing of the Sierpinski gasket an interesting shape that has a long history and is of interest in areas such as fractal geometry. The Sierpinski gasket

More information

Geometric Computation: Introduction

Geometric Computation: Introduction : Introduction Piotr Indyk Welcome to 6.838! Overview and goals Course Information Syllabus 2D Convex hull Signup sheet Geometric computation occurs everywhere: Geographic Information Systems (GIS): nearest

More information

Project 1: Convex hulls and line segment intersection

Project 1: Convex hulls and line segment intersection MCS 481 / David Dumas / Spring 2012 Project 1: Convex hulls and line segment intersection Due at 2pm on Monday, February 6 0. Requirements In order to complete this project you will need CGAL and a compatible

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

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

Computational Geometry. HKU ACM ICPC Training 2010

Computational Geometry. HKU ACM ICPC Training 2010 Computational Geometry HKU ACM ICPC Training 2010 1 What is Computational Geometry? Deals with geometrical structures Points, lines, line segments, vectors, planes, etc. A relatively boring class of problems

More information

3D Reconstruction from Scene Knowledge

3D Reconstruction from Scene Knowledge Multiple-View Reconstruction from Scene Knowledge 3D Reconstruction from Scene Knowledge SYMMETRY & MULTIPLE-VIEW GEOMETRY Fundamental types of symmetry Equivalent views Symmetry based reconstruction MUTIPLE-VIEW

More information

Implementing Geometric Algorithms. Wouter van Toll June 20, 2017

Implementing Geometric Algorithms. Wouter van Toll June 20, 2017 Implementing Geometric Algorithms Wouter van Toll June 20, 2017 Introduction 6/20/2017 Lecture: Implementing Geometric Algorithms 2 Focus of this course Create algorithms to solve geometric problems Prove

More information

Coverage and Search Algorithms. Chapter 10

Coverage and Search Algorithms. Chapter 10 Coverage and Search Algorithms Chapter 10 Objectives To investigate some simple algorithms for covering the area in an environment To understand how break down an environment in simple convex pieces To

More information

Notes and Answers to Homework Exam 1, Geometric Algorithms, 2017

Notes and Answers to Homework Exam 1, Geometric Algorithms, 2017 Notes and Answers to Homework Exam 1, Geometric Algorithms, 2017 Below are some notes and sketches of correct answers for the first homework exam. We have also included the most common mistakes that were

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

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

Lecture 4: Trees and Art Galleries

Lecture 4: Trees and Art Galleries Math 7H: Honors Seminar Professor: Padraic Bartlett Lecture 4: Trees and Art Galleries Week 2 UCSB 2014 1 Prelude: Graph Theory In this talk, we re going to refer frequently to things called graphs and

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

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

Lectures 19: The Gauss-Bonnet Theorem I. Table of contents

Lectures 19: The Gauss-Bonnet Theorem I. Table of contents Math 348 Fall 07 Lectures 9: The Gauss-Bonnet Theorem I Disclaimer. As we have a textbook, this lecture note is for guidance and supplement only. It should not be relied on when preparing for exams. In

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

Clipping & Culling. Lecture 11 Spring Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling

Clipping & Culling. Lecture 11 Spring Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling Clipping & Culling Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling Lecture 11 Spring 2015 What is Clipping? Clipping is a procedure for spatially partitioning geometric primitives,

More information

Lecture 1: September 6, 2001

Lecture 1: September 6, 2001 Lecture 1: September 6, 2001 Welcome to 6.838J, Geometric Computation! Introductions Overview and Goals General Information Syllabus 2D Convex Hull Signup sheets (return by end of class) MIT 6.838J/4.214J

More information

UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels. Spring, Project

UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels. Spring, Project UMass Lowell Computer Science 91.504 Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 Project Project Deliverables Deliverable Due Date Grade % Proposal & Lead Class Discussion

More information

Evolutionary Approaches for Resilient Surveillance Management. Ruidan Li and Errin W. Fulp. U N I V E R S I T Y Department of Computer Science

Evolutionary Approaches for Resilient Surveillance Management. Ruidan Li and Errin W. Fulp. U N I V E R S I T Y Department of Computer Science Evolutionary Approaches for Resilient Surveillance Management Ruidan Li and Errin W. Fulp WAKE FOREST U N I V E R S I T Y Department of Computer Science BioSTAR Workshop, 2017 Surveillance Systems Growing

More information

Finding sets of points without empty convex 6-gons. Mark H. Overmars

Finding sets of points without empty convex 6-gons. Mark H. Overmars Finding sets of points without empty convex 6-gons Mark H. Overmars UU-CS-2001-07 February 2001 Finding sets of points without empty convex 6-gons Mark Overmars Department of Information and Computing

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

Tools, Generic Programming, CGAL, and 2D Arrangement of CGAL

Tools, Generic Programming, CGAL, and 2D Arrangement of CGAL Tools, Generic Programming, CGAL, and 2D Arrangement of CGAL Efi Fogel efif@post.tau.ac.il School of computer science, Tel Aviv University Spring 2004 Motion Planning workshop 1/23 Tools, Toolkits, and

More information

Parallel Computation of Spherical Parameterizations for Mesh Analysis. Th. Athanasiadis and I. Fudos University of Ioannina, Greece

Parallel Computation of Spherical Parameterizations for Mesh Analysis. Th. Athanasiadis and I. Fudos University of Ioannina, Greece Parallel Computation of Spherical Parameterizations for Mesh Analysis Th. Athanasiadis and I. Fudos, Greece Introduction Mesh parameterization is a powerful geometry processing tool Applications Remeshing

More information

Lattice Polygon s and Pick s Theorem From Dana Paquin and Tom Davis 1 Warm-Up to Ponder

Lattice Polygon s and Pick s Theorem From Dana Paquin and Tom Davis   1 Warm-Up to Ponder Lattice Polygon s and Pick s Theorem From Dana Paquin and Tom Davis http://www.geometer.org/mathcircles/pick.pdf 1 Warm-Up to Ponder 1. Is it possible to draw an equilateral triangle on graph paper so

More information

MIT EECS 6.837, Teller and Durand 1

MIT EECS 6.837, Teller and Durand 1 MIT EECS 6.837, Teller and Durand 1 Clipping MIT EECS 6.837 Frédo Durand and Seth Teller Some slides and images courtesy of Leonard McMillan MIT EECS 6.837, Teller and Durand 2 Administrative Assignment

More information

How Do Computers Solve Geometric Problems? Sorelle Friedler, University of Maryland - College Park

How Do Computers Solve Geometric Problems? Sorelle Friedler, University of Maryland - College Park How Do Computers Solve Geometric Problems? Sorelle Friedler, University of Maryland - College Park http://www.cs.umd.edu/~sorelle Outline Introduction Algorithms Computational Geometry Art Museum Problem

More information

CSCI 4620/8626. Computer Graphics Clipping Algorithms (Chapter 8-5 )

CSCI 4620/8626. Computer Graphics Clipping Algorithms (Chapter 8-5 ) CSCI 4620/8626 Computer Graphics Clipping Algorithms (Chapter 8-5 ) Last update: 2016-03-15 Clipping Algorithms A clipping algorithm is any procedure that eliminates those portions of a picture outside

More information

The SUMO Speaker Series for Undergraduates. The Art Gallery Problem

The SUMO Speaker Series for Undergraduates. The Art Gallery Problem The SUMO Speaker Series for Undergraduates (food from Pizza Chicago) Wednesday, April 21 4:40-5:30, room 380C The Art Gallery Problem Amy Pang Abstract: Imagine you are the curator of an art gallery with

More information

From Vertices To Fragments-1

From Vertices To Fragments-1 From Vertices To Fragments-1 1 Objectives Clipping Line-segment clipping polygon clipping 2 Overview At end of the geometric pipeline, vertices have been assembled into primitives Must clip out primitives

More information

CS368: Geometric Algorithms Handout # 2 Design and Analysis Stanford University Monday, 17 April 2006

CS368: Geometric Algorithms Handout # 2 Design and Analysis Stanford University Monday, 17 April 2006 CS368: Geometric Algorithms Handout # 2 Design and Analysis Stanford University Monday, 17 April 2006 Homework #1: Arrangements, zones, straight and topological sweeps [70 points] Due Date: Monday, 1 May

More information

Geometric Rounding. Snap rounding arrangements of segments. Dan Halperin. Tel Aviv University. AGC-CGAL05 Rounding 1

Geometric Rounding. Snap rounding arrangements of segments. Dan Halperin. Tel Aviv University. AGC-CGAL05 Rounding 1 Geometric Rounding Snap rounding arrangements of segments Dan Halperin danha@tau.ac.il Tel Aviv University AGC-CGAL05 Rounding 1 Rounding geometric objects transforming an arbitrary precision object into

More information

CSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

CSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #2 due this Friday, October

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

Unit 3 Transformations and Clipping

Unit 3 Transformations and Clipping Transformation Unit 3 Transformations and Clipping Changes in orientation, size and shape of an object by changing the coordinate description, is known as Geometric Transformation. Translation To reposition

More information

1/25 Warm Up Find the value of the indicated measure

1/25 Warm Up Find the value of the indicated measure 1/25 Warm Up Find the value of the indicated measure. 1. 2. 3. 4. Lesson 7.1(2 Days) Angles of Polygons Essential Question: What is the sum of the measures of the interior angles of a polygon? What you

More information

Discrete Mathematics I So Practice Sheet Solutions 1

Discrete Mathematics I So Practice Sheet Solutions 1 Discrete Mathematics I So 2016 Tibor Szabó Shagnik Das Practice Sheet Solutions 1 Provided below are possible solutions to the questions from the practice sheet issued towards the end of the course. Exercise

More information

Algorithms. Daniel G. Aliaga. Computer Science Department Purdue University

Algorithms. Daniel G. Aliaga. Computer Science Department Purdue University Art Gallery Theorems and Algorithms Daniel G. Aliaga Computer Science Department Purdue University Art Gallery Problem: determine the minimum number of guards sufficient to cover the interior of an n-wall

More information

Path Planning for Point Robots. NUS CS 5247 David Hsu

Path Planning for Point Robots. NUS CS 5247 David Hsu Path Planning for Point Robots NUS CS 5247 David Hsu Problem Input Robot represented as a point in the plane Obstacles represented as polygons Initial and goal positions Output A collision-free path between

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

Computer Science 474 Spring 2010 Viewing Transformation

Computer Science 474 Spring 2010 Viewing Transformation Viewing Transformation Previous readings have described how to transform objects from one position and orientation to another. One application for such transformations is to create complex models from

More information

Fast Computation of Generalized Voronoi Diagrams Using Graphics Hardware

Fast Computation of Generalized Voronoi Diagrams Using Graphics Hardware Fast Computation of Generalized Voronoi Diagrams Using Graphics Hardware paper by Kennet E. Hoff et al. (University of North Carolina at Chapel Hill) presented by Daniel Emmenegger GDV-Seminar ETH Zürich,

More information

f-v v-f f-e e-f f-f e-e-cross e-v v-e degenerate PCs e-e-touch v-v

f-v v-f f-e e-f f-f e-e-cross e-v v-e degenerate PCs e-e-touch v-v Planning Motion Compliant to Complex Contact States Λ uerong Ji, Jing iao Computer Science Department University of North Carolina - Charlotte Charlotte, NC 28223, US xji@uncc.edu, xiao@uncc.edu bstract

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

Correctness. The Powercrust Algorithm for Surface Reconstruction. Correctness. Correctness. Delaunay Triangulation. Tools - Voronoi Diagram

Correctness. The Powercrust Algorithm for Surface Reconstruction. Correctness. Correctness. Delaunay Triangulation. Tools - Voronoi Diagram Correctness The Powercrust Algorithm for Surface Reconstruction Nina Amenta Sunghee Choi Ravi Kolluri University of Texas at Austin Boundary of a solid Close to original surface Homeomorphic to original

More information

Parallel or Perpendicular? How Can You Tell? Teacher Notes Page 1 of 6

Parallel or Perpendicular? How Can You Tell? Teacher Notes Page 1 of 6 Teacher Notes How can a student be sure when lines are parallel or perpendicular to a given graph using the graphing calculator? The difficulty lies in matching a mechanical graph that is on a rectangular

More information

Unknot recognition, linear programming and the elusive polynomial time algorithm

Unknot recognition, linear programming and the elusive polynomial time algorithm Unknot recognition, linear programming and the elusive polynomial time algorithm Benjamin Burton The University of Queensland June 16, 2011 1 / 28 2 / 28 Outline 1 Decision problems in geometric topology

More information

Clipping a Mesh Against a Plane

Clipping a Mesh Against a Plane Clipping a Mesh Against a Plane David Eberly, Geometric Tools, Redmond WA 98052 https://www.geometrictools.com/ This work is licensed under the Creative Commons Attribution 4.0 International License. To

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

CS452/552; EE465/505. Clipping & Scan Conversion

CS452/552; EE465/505. Clipping & Scan Conversion CS452/552; EE465/505 Clipping & Scan Conversion 3-31 15 Outline! From Geometry to Pixels: Overview Clipping (continued) Scan conversion Read: Angel, Chapter 8, 8.1-8.9 Project#1 due: this week Lab4 due:

More information

CSE (Computational Geometry) SYLLABUS

CSE (Computational Geometry) SYLLABUS CSE 5392-016 (Computational Geometry) SYLLABUS Spring 2005: TR 5:30-6:50, Preston Hall 100 Instructor: Bob Weems, Associate Professor (weems@uta.edu, http://reptar.uta.edu) Office: 344 Nedderman, 817/272-2337

More information

: Mesh Processing. Chapter 8

: Mesh Processing. Chapter 8 600.657: Mesh Processing Chapter 8 Handling Mesh Degeneracies [Botsch et al., Polygon Mesh Processing] Class of Approaches Geometric: Preserve the mesh where it s good. Volumetric: Can guarantee no self-intersection.

More information

Constrained Delaunay Triangulations (CDT)

Constrained Delaunay Triangulations (CDT) Constrained Delaunay Triangulations (CDT) Recall: Definition 1 (Constrained triangulation). A triangulation with prespecified edges or breaklines between nodes. Motivation: Geological faults in oil recovery

More information

Triangulation by Ear Clipping

Triangulation by Ear Clipping Triangulation by Ear Clipping David Eberly, Geometric Tools, Redmond WA 98052 https://www.geometrictools.com/ This work is licensed under the Creative Commons Attribution 4.0 International License. To

More information

TOPIC 16 STUDY GUIDE LINES, ANGLES AND SHAPES

TOPIC 16 STUDY GUIDE LINES, ANGLES AND SHAPES Name: Teacher: TOPIC 16 STUDY GUIDE LINES, ANGLES AND SHAPES Study Guide Due: Test Date: Parents, 4th Graders are focusing on giving their best effort. One way to show that they are going above and beyond

More information

Orientable Closed/ Boundary-less 2-manifold This wireframe study of a chalice was painted by the Italian Renaissance artist Paolo Uccello around 1460. Today 3D polygonal meshes are the dominant representation

More information

Interference-Free Polyhedral Configurations for Stacking

Interference-Free Polyhedral Configurations for Stacking IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL. 18, NO. 2, APRIL 2002 147 Interference-Free Polyhedral Configurations for Stacking Venkateswara R. Ayyadevara, David A. Bourne, Kenji Shimada, and Robert

More information

MISCELLANEOUS SHAPES

MISCELLANEOUS SHAPES MISCELLANEOUS SHAPES 4.1. INTRODUCTION Five generic shapes of polygons have been usefully distinguished in the literature: convex, orthogonal, star, spiral, and monotone. 1 Convex polygons obviously do

More information

Linear Programming. Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015

Linear Programming. Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 Linear Programming 2015 Goodrich and Tamassia 1 Formulating the Problem q The function

More information

Computational Geometry Algorithms Library. Pierre Alliez INRIA

Computational Geometry Algorithms Library. Pierre Alliez INRIA Computational Geometry Algorithms Library Pierre Alliez INRIA Mission Statement Make the large body of geometric algorithms developed in the field of computational geometry available for industrial applications

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

Critique for CS 448B: Topics in Modeling The Voronoi-clip Collision Detection Algorithm

Critique for CS 448B: Topics in Modeling The Voronoi-clip Collision Detection Algorithm Critique for CS 448B: Topics in Modeling The Voronoi-clip Collision Detection Algorithm 1. Citation Richard Bragg March 3, 2000 Mirtich B. (1997) V-Clip: Fast and Robust Polyhedral Collision Detection.

More information

Quadratic-Time Linear-Space Algorithms for Generating Orthogonal Polygons with a Given Number of Vertices

Quadratic-Time Linear-Space Algorithms for Generating Orthogonal Polygons with a Given Number of Vertices Quadratic-Time Linear-Space Algorithms for Generating Orthogonal Polygons with a Given Number of Vertices Ana Paula Tomás 1 and António Leslie Bajuelos 2 1 DCC-FC & LIACC, University of Porto, Portugal

More information

Chapter 12: Fractal Geometry The Koch Snowflake and Self-Similarity

Chapter 12: Fractal Geometry The Koch Snowflake and Self-Similarity Chapter 12: Fractal Geometry 12.1 The Koch Snowflake and Self-Similarity Geometric Fractal Our first example of a geometric fractal is a shape known as the Koch snowflake, named after the Swedish mathematician

More information

Art Gallery Theorems and Algorithms

Art Gallery Theorems and Algorithms Art Gallery Art Gallery Theorems and Algorithms Daniel G. Aliaga Computer Science Department Purdue University Problem: determine the minimum number of guards sufficient to cover the interior of an n-wall

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

A chromatic art gallery problem

A chromatic art gallery problem A chromatic art gallery problem Lawrence H. Erickson and Steven M. LaValle Department of Computer Science University of Illinois at Urbana-Champaign Urbana, IL 61801 USA {lericks4, lavalle}@uiuc.edu Abstract

More information

Topic 0. Introduction: What Is Computer Graphics? CSC 418/2504: Computer Graphics EF432. Today s Topics. What is Computer Graphics?

Topic 0. Introduction: What Is Computer Graphics? CSC 418/2504: Computer Graphics EF432. Today s Topics. What is Computer Graphics? EF432 Introduction to spagetti and meatballs CSC 418/2504: Computer Graphics Course web site (includes course information sheet): http://www.dgp.toronto.edu/~karan/courses/418/ Instructors: L0101, W 12-2pm

More information

Computational geometry

Computational geometry Computational geometry Inge Li Gørtz CLRS Chapter 33.0, 33.1, 33.3. Computational Geometry Geometric problems (this course Euclidean plane). Does a set of line segments intersect, dividing plane into regions,

More information

Triangle Rasterization

Triangle Rasterization Triangle Rasterization Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 2/07/07 1 From last time Lines and planes Culling View frustum culling Back-face culling Occlusion culling

More information

Distance Preserving Terrain Simplification An Experimental Study

Distance Preserving Terrain Simplification An Experimental Study Distance Preserving Terrain Simplification An Experimental Study Boaz Ben-Moshe 1 Matthew J. Katz 2 Igor Zaslavsky 2 1 Department of Computer Science College of Judea and Samaria, Ariel 44837, Israel benmo@yosh.ac.il

More information

Linear time 8/3-approx. of r-star guards in simple orthogonal art galleries

Linear time 8/3-approx. of r-star guards in simple orthogonal art galleries Linear time 8/3-approx. of r-star guards in simple orthogonal art galleries Ervin Győri & Tamás Róbert Mezei 1 ICGT 2018, July 9, Lyon 1 Alfréd Rényi Institute of Mathematics, Hungarian Academy of Sciences

More information

Culling. Computer Graphics CSE 167 Lecture 12

Culling. Computer Graphics CSE 167 Lecture 12 Culling Computer Graphics CSE 167 Lecture 12 CSE 167: Computer graphics Culling Definition: selecting from a large quantity In computer graphics: selecting primitives (or batches of primitives) that are

More information

Lecture 14: Computational Geometry Steven Skiena. skiena

Lecture 14: Computational Geometry Steven Skiena.   skiena Lecture 14: Computational Geometry Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Line Segments Arbitrary closed curves

More information

CS130 : Computer Graphics Lecture 2: Graphics Pipeline. Tamar Shinar Computer Science & Engineering UC Riverside

CS130 : Computer Graphics Lecture 2: Graphics Pipeline. Tamar Shinar Computer Science & Engineering UC Riverside CS130 : Computer Graphics Lecture 2: Graphics Pipeline Tamar Shinar Computer Science & Engineering UC Riverside Raster Devices and Images Raster Devices - raster displays show images as a rectangular array

More information