• Create Account

## Splitting a rectangle area into organic section.

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.

7 replies to this topic

### #1Spidyy  Members

185
Like
0Likes
Like

Posted 19 March 2014 - 05:17 AM

Hey there.

I'm willing to split a rectangle area into N part, forming an organic splitting of curved sections.

I'm searching an algorithm or a mathematic formula for this, but I'm lacking the exact words for such algorithm.

If anyone have an idea of what could be usefull for me, I just need a name so I can extend my researches.

An example of what I am thinking of :

Here a splitting of a rect with a central zone and 6 others.

With regards!

### #2Spidyy  Members

185
Like
0Likes
Like

Posted 19 March 2014 - 05:24 AM

Already thinking of a solution :

Placing the N points randomly in the area, then, when trying to get from which area are a coordinates in the area, check the distance and influence of each point.

Now, how could I randomly place the points avoiding to have several points too close to each other and decently filling all the space in the area?

### #3Bacterius  Members

13100
Like
0Likes
Like

Posted 19 March 2014 - 06:10 AM

Another option: start with points randomly distributed (but sufficiently far apart) on the edges of the rectangle, and draw a curve (as a smooth random walk or similar) from of each. Then, after a random length, split the curve into two and keep going, AND when two curves get sufficiently close to one another, make them attract each other until they connect. I think with some tweaking this could give some good results too. Then to work out which area a point is in you could use the even-odd rule with a few intersection tests or just a flood-fill algorithm, I don't know, maybe you don't even need that information. I think if you want to capture the wobbly curvy aspect you will need a lot of metaballs (which is basically what you're proposing, I believe), but I suppose it could work.

Just an idea though. Voronoi diagrams are nice too but they are not really organic as per your illustration, more like tilings, as they have straight edges.

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

### #4Ashaman73  Members

13649
Like
3Likes
Like

Posted 19 March 2014 - 06:18 AM

Placing the N points randomly in the area, then, when trying to get from which area are a coordinates in the area, check the distance and influence of each point.

This is a good way to go, take a look at voronoi cells, it sounds like your approach and produces really good results.

Ashaman

### #5plainoldcj  Members

1068
Like
2Likes
Like

Posted 19 March 2014 - 06:28 AM

I just want to give you the name voronoi diagram.
I've only seen the case where the "influence" of a point is the euclidean distance. That is, for each point p
of an input set you get a corresponding "section" (cell) which contains all points which distance to p is not greater
than to every other point of the input set.
So it doesn't actually fit your problem but I imagine there are other forms of the vornoi diagram which solve your problem.
Or maybe you find a way to make the borders fuzzy, don't know.
You're picture reminded me of this, so just use this term to google

Note, however, that most algorithms for voronoi diagrams compute a representation of the borders of the section, like a graph, for
instance. I could imagine that's not what you need.

If you just want to draw such sections, why not draw several predefined sections on top of each other? This should even work
with picking.
You could use metaballs to generate sections.

What are you trying to do, anyways?

### #6Spidyy  Members

185
Like
0Likes
Like

Posted 19 March 2014 - 06:51 AM

Voronoi really looks like what I need! Thanks. :]

I'm trying to make a World map generator, using voronoi to have some Biomes, like minecraft biomes, the difference is, each biome must be uniform, unique and of closely enough size with each others.

Just imagine the Zelda : A link to the past's map. you got the lack on a corner, the desert on another, the mountain on the top and smaller areas. I'm trying to imitate such disposition from code, with randomness and without rectangular area.

Edited by Spidyy, 19 March 2014 - 06:56 AM.

### #7Spidyy  Members

185
Like
1Likes
Like

Posted 19 March 2014 - 08:22 AM

A short code, some tweaks and here is my beautiful region from voronoi's algorithm plus a little "weight" variable for each region, wich generate some cute round curves. :]

I like it.

### #8plainoldcj  Members

1068
Like
0Likes
Like

Posted 19 March 2014 - 08:53 AM

Wow, that was fast!

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.