Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an efficient algorithm to generate a 2D concave hull?

Having a set of (2D) points from a GIS file (a city map), I need to generate the polygon that defines the 'contour' for that map (its boundary). Its input parameters would be the points set and a 'maximum edge length'. It would then output the corresponding (probably non-convex) polygon.

The best solution I found so far was to generate the Delaunay triangles and then remove the external edges that are longer than the maximum edge length. After all the external edges are shorter than that, I simply remove the internal edges and get the polygon I want. The problem is, this is very time-consuming and I'm wondering if there's a better way.

like image 216
Fabio Ceconello Avatar asked Sep 17 '08 14:09

Fabio Ceconello


People also ask

What is concave hull algorithm?

A concave hull is visualized using the red line in the image below (the blue line visualizes the convex hull). Intuitively, it is a polygon which embraces all the points, but has less (minimal?) area compared to the convex hull. As a result, the polygon's boundary length is longer.

Which is the algorithm for finding convex hull *?

In this article, we have explored the Gift Wrap Algorithm ( Jarvis March Algorithm ) to find the convex hull of any given set of points. Convex Hull is the line completely enclosing a set of points in a plane so that there are no concavities in the line.

What algorithms are used in computing the convex hull of N points?

Perhaps the simplest algorithm for computing convex hulls simply simulates the process of wrapping a piece of string around the points. This algorithm is usually called Jarvis's march, but it is also referred to as the gift-wrapping algorithm.


2 Answers

One of the former students in our lab used some applicable techniques for his PhD thesis. I believe one of them is called "alpha shapes" and is referenced in the following paper:

http://www.cis.rit.edu/people/faculty/kerekes/pdfs/AIPR_2007_Gurram.pdf

That paper gives some further references you can follow.

like image 76
nsanders Avatar answered Sep 21 '22 18:09

nsanders


This paper discusses the Efficient generation of simple polygons for characterizing the shape of a set of points in the plane and provides the algorithm. There's also a Java applet utilizing the same algorithm here.

like image 24
Amirali Avatar answered Sep 20 '22 18:09

Amirali