# Point To Polygon

This topic is 1955 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

hey
does anyone know how to create a polygon from points? i tried googling and looking through my graphics programming books but found nothing.... I can't use any library to do this need the algorithm it self.
thanks

##### Share on other sites
What does "a polygon from points" mean? You have the corners of the polygon? Also in what context?

##### Share on other sites
You mean like use the corners to color in pixels? Google scanline rasterization

##### Share on other sites
i have simply array of points (x,y). and make polygon from that

##### Share on other sites
Typically a polygon IS given by its vertices ("corners"). So mathematically speaking you already have a polygon. Without further context you question doesn't make much sense.

##### Share on other sites
the points are not in order

##### Share on other sites
A simple polygon you can make from a collection of points is a convex hull. The advantage of this is there is a unique solution for the set of input points, but it discards any points that are internal to the polygon. There are quite a few different algorithms for calculating a convex hull (of varying complexity and performance), so have a quick google and find an algorithm that is up to your level of expertise.

[attachment=11038:points1.png]

If you need to include all vertices, the polygon is going to be a concave hull, and you start to run into problems. Unless you know there are definite constraints on the way the vertices link up, like say a maximum distance or angle between vertices, you quickly discover there are many solutions for even a small number of vertices, doubly so if you allow self-intersection.

[attachment=11039:points2.png]

##### Share on other sites
[quote name='Postie' timestamp='1346545434' post='4975595']
If you need to include all vertices, the polygon is going to be a concave hull, and you start to run into problems. Unless you know there are definite constraints on the way the vertices link up, like say a maximum distance or angle between vertices, you quickly discover there are many solutions for even a small number of vertices, doubly so if you allow self-intersection.
[/quote]

this is what i need "concave hull". is there any algorithms..?

##### Share on other sites
can anyone recommend math book or game programming book that teaches these things? thanks.
or answer to this post will do as well

##### Share on other sites
[quote name='heh65532' timestamp='1346973329' post='4977411']
can anyone recommend math book or game programming book that teaches these things? thanks.
or answer to this post will do as well [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]
[/quote]

Well, it depends on how you want them connected. Does it matter? Edited by Doug Rogers

##### Share on other sites
I think that it's still unclear what you want. If you just want to render a polygon on the screen, you need to pick an API to use. Most/all have methods where you provide a list of vertices, and then a list of indices which indicate which vertices are joined to which. Or you could skip the APIs and learn how to rasterize it yourself. I imagine that rasterizing a concave polygon would be a painful experience, although there are likely papers and algorithms to handle it. Traditionally convex polygons are the easiest to deal with, particularly triangles, which is why they are so popular in computer graphics.

If you're talking about geometry problems as Postie mentioned... I've never heard of concave hull, probably because there is no unique answer, unlike convex hull, and also no specific purpose for it that I'm aware of.

##### Share on other sites
Ok i made this image to show what I'm trying to do.

There's a grid which represents an area. the green cells means area which borders I want to draw. First i have found the borders cells of the green area, i have them In x,y format (points). and now I want to draw the red line (border). But the problem is that the points i have collected are not in order (no indices).

I can either use some other algorithm to find the border cells and find them in correct order.
Or find a way to determine in which order the points are so the border can be drawn,

[img]http://img266.imageshack.us/img266/6487/examplese.png[/img]

hope you see now what I'm trying to accomplish

##### Share on other sites
Have a look at the Marching Squares's algorithm.

##### Share on other sites

This topic is 1955 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.