Finding the Convex Hull of a Simple Polygon RONALD L
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Gscan: Accelerating Graham Scan on The
gScan:AcceleratingGrahamScanontheGPU Gang Mei Institute of Earth and Environmental Science, University of Freiburg Albertstr.23B, D-79104, Freiburg im Breisgau, Germany E-mail: [email protected] Abstract This paper presents a fast implementation of the Graham scan on the GPU. The proposed algorithm is composed of two stages: (1) two rounds of preprocessing performed on the GPU and (2) the finalization of finding the convex hull on the CPU. We first discard the interior points that locate inside a quadrilateral formed by four extreme points, sort the remaining points according to the angles, and then divide them into the left and the right regions. For each region, we perform a second round of filtering using the proposed preprocessing approach to discard the interior points in further. We finally obtain the expected convex hull by calculating the convex hull of the remaining points on the CPU. We directly employ the parallel sorting, reduction, and partitioning provided by the library Thrust for better efficiency and simplicity. Experimental results show that our implementation achieves 6x ~ 7x speedups over the Qhull implementation for 20M points. Keywords: GPU, CUDA, Convex Hull, Graham Scan, Divide-and-Conquer, Data Dependency 1.Introduction Given a set of planar points S, the 2D convex hull problem is to find the smallest polygon that contains all the points in S. This problem is a fundamental issue in computer science and has been studied extensively. Several classic convex hull algorithms have been proposed [1-7]; most of them run in O(nlogn) time. Among them, the Graham scan algorithm [1] is the first practical convex hull algorithm, while QuickHull [7] is the most efficient and popular one in practice. -
Geometric Algorithms
Geometric Algorithms primitive operations convex hull closest pair voronoi diagram References: Algorithms in C (2nd edition), Chapters 24-25 http://www.cs.princeton.edu/introalgsds/71primitives http://www.cs.princeton.edu/introalgsds/72hull 1 Geometric Algorithms Applications. • Data mining. • VLSI design. • Computer vision. • Mathematical models. • Astronomical simulation. • Geographic information systems. airflow around an aircraft wing • Computer graphics (movies, games, virtual reality). • Models of physical world (maps, architecture, medical imaging). Reference: http://www.ics.uci.edu/~eppstein/geom.html History. • Ancient mathematical foundations. • Most geometric algorithms less than 25 years old. 2 primitive operations convex hull closest pair voronoi diagram 3 Geometric Primitives Point: two numbers (x, y). any line not through origin Line: two numbers a and b [ax + by = 1] Line segment: two points. Polygon: sequence of points. Primitive operations. • Is a point inside a polygon? • Compare slopes of two lines. • Distance between two points. • Do two line segments intersect? Given three points p , p , p , is p -p -p a counterclockwise turn? • 1 2 3 1 2 3 Other geometric shapes. • Triangle, rectangle, circle, sphere, cone, … • 3D and higher dimensions sometimes more complicated. 4 Intuition Warning: intuition may be misleading. • Humans have spatial intuition in 2D and 3D. • Computers do not. • Neither has good intuition in higher dimensions! Is a given polygon simple? no crossings 1 6 5 8 7 2 7 8 6 4 2 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 2 18 4 18 4 19 4 19 4 20 3 20 3 20 1 10 3 7 2 8 8 3 4 6 5 15 1 11 3 14 2 16 we think of this algorithm sees this 5 Polygon Inside, Outside Jordan curve theorem. -
Studies on Kernels of Simple Polygons
UNLV Theses, Dissertations, Professional Papers, and Capstones 5-1-2020 Studies on Kernels of Simple Polygons Jason Mark Follow this and additional works at: https://digitalscholarship.unlv.edu/thesesdissertations Part of the Computer Sciences Commons Repository Citation Mark, Jason, "Studies on Kernels of Simple Polygons" (2020). UNLV Theses, Dissertations, Professional Papers, and Capstones. 3923. http://dx.doi.org/10.34917/19412121 This Thesis is protected by copyright and/or related rights. It has been brought to you by Digital Scholarship@UNLV with permission from the rights-holder(s). You are free to use this Thesis in any way that is permitted by the copyright and related rights legislation that applies to your use. For other uses you need to obtain permission from the rights-holder(s) directly, unless additional rights are indicated by a Creative Commons license in the record and/ or on the work itself. This Thesis has been accepted for inclusion in UNLV Theses, Dissertations, Professional Papers, and Capstones by an authorized administrator of Digital Scholarship@UNLV. For more information, please contact [email protected]. STUDIES ON KERNELS OF SIMPLE POLYGONS By Jason A. Mark Bachelor of Science - Computer Science University of Nevada, Las Vegas 2004 A thesis submitted in partial fulfillment of the requirements for the Master of Science - Computer Science Department of Computer Science Howard R. Hughes College of Engineering The Graduate College University of Nevada, Las Vegas May 2020 © Jason A. Mark, 2020 All Rights Reserved Thesis Approval The Graduate College The University of Nevada, Las Vegas April 2, 2020 This thesis prepared by Jason A. -
Properties of N-Sided Regular Polygons
PROPERTIES OF N-SIDED REGULAR POLYGONS When students are first exposed to regular polygons in middle school, they learn their properties by looking at individual examples such as the equilateral triangles(n=3), squares(n=4), and hexagons(n=6). A generalization is usually not given, although it would be straight forward to do so with just a min imum of trigonometry and algebra. It also would help students by showing how one obtains generalization in mathematics. We show here how to carry out such a generalization for regular polynomials of side length s. Our starting point is the following schematic of an n sided polygon- We see from the figure that any regular n sided polygon can be constructed by looking at n isosceles triangles whose base angles are θ=(1-2/n)(π/2) since the vertex angle of the triangle is just ψ=2π/n, when expressed in radians. The area of the grey triangle in the above figure is- 2 2 ATr=sh/2=(s/2) tan(θ)=(s/2) tan[(1-2/n)(π/2)] so that the total area of any n sided regular convex polygon will be nATr, , with s again being the side-length. With this generalized form we can construct the following table for some of the better known regular polygons- Name Number of Base Angle, Non-Dimensional 2 sides, n θ=(π/2)(1-2/n) Area, 4nATr/s =tan(θ) Triangle 3 π/6=30º 1/sqrt(3) Square 4 π/4=45º 1 Pentagon 5 3π/10=54º sqrt(15+20φ) Hexagon 6 π/3=60º sqrt(3) Octagon 8 3π/8=67.5º 1+sqrt(2) Decagon 10 2π/5=72º 10sqrt(3+4φ) Dodecagon 12 5π/12=75º 144[2+sqrt(3)] Icosagon 20 9π/20=81º 20[2φ+sqrt(3+4φ)] Here φ=[1+sqrt(5)]/2=1.618033989… is the well known Golden Ratio. -
Optimal Output-Sensitive Convex Hull Algorithms in Two and Three Dimensions*
Discrete Comput Geom 16:361-368 (1996) GeometryDiscrete & Computational ~) 1996Springer-Verlag New YorkInc. Optimal Output-Sensitive Convex Hull Algorithms in Two and Three Dimensions* T. M. Chan Department of Computer Science, University of British Columbia, Vancouver, British Columbia, Canada V6T 1Z4 Abstract. We present simple output-sensitive algorithms that construct the convex hull of a set of n points in two or three dimensions in worst-case optimal O (n log h) time and O(n) space, where h denotes the number of vertices of the convex hull. 1. Introduction Given a set P ofn points in the Euclidean plane E 2 or Euclidean space E 3, we consider the problem of computing the convex hull of P, cony(P), which is defined as the smallest convex set containing P. The convex hull problem has received considerable attention in computational geometry [11], [21], [23], [25]. In E 2 an algorithm known as Graham's scan [15] achieves O(n logn) rtmning time, and in E 3 an algorithm by Preparata and Hong [24] has the same complexity. These algorithms are optimal in the worst case, but if h, the number of hull vertices, is small, then it is possible to obtain better time bounds. For example, in E 2, a simple algorithm called Jarvis's march [ 19] can construct the convex hull in O(nh) time. This bound was later improved to O(nlogh) by an algorithm due to Kirkpatrick and Seidel [20], who also provided a matching lower bound; a simplification of their algorithm has been recently reported by Chan et al. -
The First Treatments of Regular Star Polygons Seem to Date Back to The
View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Archivio istituzionale della ricerca - Università di Palermo FROM THE FOURTEENTH CENTURY TO CABRÌ: CONVOLUTED CONSTRUCTIONS OF STAR POLYGONS INTRODUCTION The first treatments of regular star polygons seem to date back to the fourteenth century, but a comprehensive theory on the subject was presented only in the nineteenth century by the mathematician Louis Poinsot. After showing how star polygons are closely linked to the concept of prime numbers, I introduce here some constructions, easily reproducible with geometry software that allow us to investigate and see some nice and hidden property obtained by the scholars of the fourteenth century onwards. Regular star polygons and prime numbers Divide a circumference into n equal parts through n points; if we connect all the points in succession, through chords, we get what we recognize as a regular convex polygon. If we choose to connect the points, starting from any one of them in regular steps, two by two, or three by three or, generally, h by h, we get what is called a regular star polygon. It is evident that we are able to create regular star polygons only for certain values of h. Let us divide the circumference, for example, into 15 parts and let's start by connecting the points two by two. In order to close the figure, we return to the starting point after two full turns on the circumference. The polygon that is formed is like the one in Figure 1: a polygon of “order” 15 and “species” two. -
A Framework for Multi-Core Implementations of Divide and Conquer Algorithms and Its Application to the Convex Hull Problem ∗
CCCG 2008, Montr´eal, Qu´ebec, August 13–15, 2008 A Framework for Multi-Core Implementations of Divide and Conquer Algorithms and its Application to the Convex Hull Problem ∗ Stefan N¨aher Daniel Schmitt † Abstract 2 Divide and Conquer Algorithms We present a framework for multi-core implementations Divide and conquer algorithms solve problems by di- of divide and conquer algorithms and show its efficiency viding them into subproblems, solving each subprob- and ease of use by applying it to the fundamental geo- lem recursively and merging the corresponding results metric problem of computing the convex hull of a point to a complete solution. All subproblems have exactly set. We concentrate on the Quickhull algorithm intro- the same structure as the original problem and can be duced in [2]. In general the framework can easily be solved independently from each other, and so can eas- used for any D&C-algorithm. It is only required that ily be distributed over a number of parallel processes the algorithm is implemented by a C++ class imple- or threads. This is probably the most straightforward menting the job-interface introduced in section 3 of this parallelization strategy. However, in general it can not paper. be guaranteed that always enough subproblems exist, which leads to non-optimal speedups. This is in partic- 1 Introduction ular true for the first divide step and the final merging step but is also a problem in cases where the recur- Performance gain in computing is no longer achieved sion tree is unbalanced such that the number of open by increasing cpu clock rates but by multiple cpu cores sub-problems is smaller than the number of available working on shared memory and a common cache. -
Simple Polygons Scribe: Michael Goldwasser
CS268: Geometric Algorithms Handout #5 Design and Analysis Original Handout #15 Stanford University Tuesday, 25 February 1992 Original Lecture #6: 28 January 1991 Topics: Triangulating Simple Polygons Scribe: Michael Goldwasser Algorithms for triangulating polygons are important tools throughout computa- tional geometry. Many problems involving polygons are simplified by partitioning the complex polygon into triangles, and then working with the individual triangles. The applications of such algorithms are well documented in papers involving visibility, motion planning, and computer graphics. The following notes give an introduction to triangulations and many related definitions and basic lemmas. Most of the definitions are based on a simple polygon, P, containing n edges, and hence n vertices. However, many of the definitions and results can be extended to a general arrangement of n line segments. 1 Diagonals Definition 1. Given a simple polygon, P, a diagonal is a line segment between two non-adjacent vertices that lies entirely within the interior of the polygon. Lemma 2. Every simple polygon with jPj > 3 contains a diagonal. Proof: Consider some vertex v. If v has a diagonal, it’s party time. If not then the only vertices visible from v are its neighbors. Therefore v must see some single edge beyond its neighbors that entirely spans the sector of visibility, and therefore v must be a convex vertex. Now consider the two neighbors of v. Since jPj > 3, these cannot be neighbors of each other, however they must be visible from each other because of the above situation, and thus the segment connecting them is indeed a diagonal. -
Convex Hull in 3 Dimensions
CONVEX HULL IN 3 DIMENSIONS PETR FELKEL FEL CTU PRAGUE [email protected] https://cw.felk.cvut.cz/doku.php/courses/a4m39vg/start Based on [Berg], [Preparata], [Rourke] and [Boissonnat] Version from 16.11.2017 Talk overview Upper bounds for convex hull in 2D and 3D Other criteria for CH algorithm classification Recapitulation of CH algorithms Terminology refresh Convex hull in 3D – Terminology – Algorithms • Gift wrapping • D&C Merge • Randomized Incremental www.cguu.com www.cguu.com Computational geometry (2 / 41) Upper bounds for Convex hull algorithms O(n) for sorted points and for simple polygon 2 3 O(n log n) in E ,E with sorting – insensitive about output O(n h), O(n logh), h is number of CH facets – output sensitive –O(n2) or O(n logn) for n ~ h O(log n) for new point insertion in realtime algs. => O(n log n) for n-points O(log n) search where to insert Computational geometry (3 / 41) Other criteria for CH algorithm classification Optimality – depends on data order (or distribution) In the worst case x In the expected case Output sensitivity – depends on the result ~ O(f(h)) Extendable to higher dimensions? Off-line versus on-line – Off-line – all points available, preprocessing for search speedup – On-line – stream of points, new point pi on demand, just one new point at a time, CH valid for {p1,p2 ,…, pi } – Real-time – points come as they “want” (come not faster than optimal constant O(log n) inter-arrival delay) Parallelizable x serial Dynamic – points can be deleted Deterministic x approximate (lecture 13) Computational -
An Overview of Computational Geometry
An Overview of Computational Geometry Alex Scheffelin Contents 1 Abstract 2 2 Introduction 3 2.1 Basic Definitions . .3 3 Floating Point Error 4 3.1 Imprecision in Floating Point Operations . .4 3.2 Precision in the Calculation of the Area of a Polygon . .5 4 Speed 7 4.1 Big O Notation . .7 4.2 A More Efficient Algorithm to Calculate Intersections of Lines . .8 4.3 Recap on Speed . 15 5 How Can Pure Mathematics Influence Computational Geometry? 16 5.1 Point in Polygon Calculation . 16 5.2 Why Do We Care? . 19 6 Convex Hull Algorithms 19 6.1 What is a Convex Hull . 19 6.2 The Jarvis March Algorithm . 19 6.3 The Graham Scan Algorithm . 21 6.4 Other Efficient Algorithms . 22 6.5 Generalizations to the Convex Hull . 23 7 Conclusion 23 1 1 Abstract Computational geometry is an applied math field which can be described as the intersection of geometry and computer science. It has many real world applications, including in 3D mod- elling programs, graphics processing, etc. We will provide an overview of the methodology of computational geometry in the limited case of 2D objects, culminating in the discussion of the construction of convex hulls, a type of polygon in the plane which is determined by a set of points. Along the way we will try to explain some unique difficulties one faces when using a computer to compute things, and attempt to highlight the methods of proof used. 2 2 Introduction 2.1 Basic Definitions I will define a few geometric objects, and give example about how one might represent them in a computer. -
An Algorithm for Finding Convex Hulls of Planar Point Sets
An Algorithm for Finding Convex Hulls of Planar Point Sets Gang Mei, John C.Tipper Nengxiong Xu Institut für Geowissenschaften – Geologie School of Engineering and Technology Albert-Ludwigs-Universität Freiburg China University of Geosciences (Beijing) Freiburg im Breisgau, Germany Beijing, China {gang.mei, john.tipper}@geologie.uni-freiburg.de [email protected] Abstract —This paper presents an alternate choice of computing Liu and Wang [13] propose a reliable and effective CH the convex hulls (CHs) for planar point sets. We firstly discard algorithm based on a technique named Principle Component the interior points and then sort the remaining vertices by x- / y- Analysis for preprocessing the planar point set. A fast CH coordinates separately, and later create a group of quadrilaterals algorithm with maximum inscribed circle affine transformation (e-Quads) recursively according to the sequences of the sorted is developed in [14]; and another two quite fast algorithms are lists of points. Finally, the desired CH is built based on a simple both designed based on GPU [15, 16]. polygon derived from all e-Quads. Besides the preprocessing for original planar point sets, this algorithm has another mechanism In this paper, we present an alternate algorithm to produce of discarding interior point when form e-Quads and assemble the the convex hull for points in the plane. The main ideas of the simple polygon. Compared with three popular CH algorithms, proposed algorithms are as follows. A planar point set is firstly the proposed algorithm can generate CHs faster than the three preprocessed by discarding its interior points; secondly the but has a penalty in space cost. -
Angles of Polygons
5.3 Angles of Polygons How can you fi nd a formula for the sum of STATES the angle measures of any polygon? STANDARDS MA.8.G.2.3 1 ACTIVITY: The Sum of the Angle Measures of a Polygon Work with a partner. Find the sum of the angle measures of each polygon with n sides. a. Sample: Quadrilateral: n = 4 A Draw a line that divides the quadrilateral into two triangles. B Because the sum of the angle F measures of each triangle is 180°, the sum of the angle measures of the quadrilateral is 360°. C D E (A + B + C ) + (D + E + F ) = 180° + 180° = 360° b. Pentagon: n = 5 c. Hexagon: n = 6 d. Heptagon: n = 7 e. Octagon: n = 8 196 Chapter 5 Angles and Similarity 2 ACTIVITY: The Sum of the Angle Measures of a Polygon Work with a partner. a. Use the table to organize your results from Activity 1. Sides, n 345678 Angle Sum, S b. Plot the points in the table in a S coordinate plane. 1080 900 c. Write a linear equation that relates S to n. 720 d. What is the domain of the function? 540 Explain your reasoning. 360 180 e. Use the function to fi nd the sum of 1 2 3 4 5 6 7 8 n the angle measures of a polygon −180 with 10 sides. −360 3 ACTIVITY: The Sum of the Angle Measures of a Polygon Work with a partner. A polygon is convex if the line segment connecting any two vertices lies entirely inside Convex the polygon.