Combine Arbitrary number of polygons together
Posted
by
Jakobud
on Stack Overflow
See other posts from Stack Overflow
or by Jakobud
Published on 2012-12-01T23:02:11Z
Indexed on
2012/12/01
23:03 UTC
Read the original article
Hit count: 167
I have an arbitrary number of polygons (hexes in this case) that are arranged randomly, but they are all touching another hex.
Each individual hex has 6 x,y vertices. The vertex's are known for all the hexes.
Can anyone point me in the direction of an algorithm that will combine all the hexes into a single polygon? Essentially I'm just looking for a function that spits out an array of vertex locations that are ordered in a way that when drawing lines from one to the next, it forms the polygon.
This is my method so far:
- Create array of all the vertices for all the hexes.
- Determine the number of times a vertex occurs in the array
- If vertex is in the array 3+ times, delete the vertices from the array.
- If vertex is in the array 2 times, delete one of them.
The next step is tricky though. I'm using canvas to draw out these polygons, which essentially involves drawing a line from one vertex to the next. So the order of the vertices in the final array is important. It can't be sorted arbitrarily.
Also, I'm not looking for a "convex hull" algorithm, as that would not draw the polygon correctly.
Are there any functions out there that do something like this? Am I on the right track or is there a better more efficient way?
© Stack Overflow or respective owner