就像标题所说,我需要将一个矩形分成随机形状的多边形。
示例,包含7个多边形:
+--------+--------+
|\ | 2 |
| \ 1 |''--..__|
| ------| 5 |
| 3 / \________|
| / /\ 6 |
|__/ 4 / \______|
| / 7 |
+-----+-----------+
我不知道是否已经存在一个算法,但我似乎无法理解这一点。
我并不特别关心你回答的语言,但我将在Java / Swing中实现。
答案 0 :(得分:14)
您可以在矩形上放下一堆随机点,然后计算Voronoi图。
Here is a Java/Swing implementation.
我做了一些样本(但是using Mathematica,而不是上面的实现)
HTH!
答案 1 :(得分:4)
我会在整个矩形上绘制一堆随机线,然后在每个线交叉处“分割”线条,这样你基本上就会有某种线条。然后删除任意数量的随机线段,直到达到所需的多边形数量。
编辑:所以对于你的样本,在添加行后会是这样的:
+----+---+----+---+
|\'--.\_/| / |
| \ X |''/-..__|
|--\--+-\+-/------|
|___\/___\/_______|
| /\ /\ |
|__/__\_/|_\______|
| / X | \ |
++----+-++---+----+