Jump to content

  • Log In with Google      Sign In   
  • Create Account

Point To Polygon


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
12 replies to this topic

#1 heh65532   Members   -  Reputation: 150

Like
0Likes
Like

Posted 01 September 2012 - 12:03 PM

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

Sponsor:

#2 japro   Members   -  Reputation: 887

Like
0Likes
Like

Posted 01 September 2012 - 12:35 PM

What does "a polygon from points" mean? You have the corners of the polygon? Also in what context?

#3 zacaj   Members   -  Reputation: 643

Like
0Likes
Like

Posted 01 September 2012 - 12:50 PM

You mean like use the corners to color in pixels? Google scanline rasterization

#4 heh65532   Members   -  Reputation: 150

Like
0Likes
Like

Posted 01 September 2012 - 03:57 PM

i have simply array of points (x,y). and make polygon from that

#5 japro   Members   -  Reputation: 887

Like
0Likes
Like

Posted 01 September 2012 - 04:02 PM

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.

#6 heh65532   Members   -  Reputation: 150

Like
0Likes
Like

Posted 01 September 2012 - 05:37 PM

the points are not in order

#7 Postie   Members   -  Reputation: 1118

Like
2Likes
Like

Posted 01 September 2012 - 06:23 PM

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.

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.

points2.png
Currently working on an open world survival RPG - For info check out my Development blog: ByteWrangler

#8 heh65532   Members   -  Reputation: 150

Like
0Likes
Like

Posted 01 September 2012 - 07:40 PM

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.


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

#9 heh65532   Members   -  Reputation: 150

Like
0Likes
Like

Posted 06 September 2012 - 05:15 PM

can anyone recommend math book or game programming book that teaches these things? thanks.
or answer to this post will do as well :)

#10 Doug Rogers   Members   -  Reputation: 173

Like
0Likes
Like

Posted 06 September 2012 - 06:16 PM

can anyone recommend math book or game programming book that teaches these things? thanks.
or answer to this post will do as well Posted Image


Well, it depends on how you want them connected. Does it matter?

Edited by Doug Rogers, 06 September 2012 - 06:18 PM.


#11 jefferytitan   Crossbones+   -  Reputation: 2243

Like
0Likes
Like

Posted 06 September 2012 - 06:38 PM

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.

#12 heh65532   Members   -  Reputation: 150

Like
0Likes
Like

Posted 08 September 2012 - 04:43 PM

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,




Posted Image

hope you see now what I'm trying to accomplish :)

#13 Postie   Members   -  Reputation: 1118

Like
0Likes
Like

Posted 08 September 2012 - 06:05 PM

Have a look at the Marching Squares's algorithm.
Currently working on an open world survival RPG - For info check out my Development blog: ByteWrangler




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS