Answers:
alwynd提到了Perlin噪音。这是我为多边形地图生成器生成岛形的方法:
(x, y)
在噪声位图,计算从中心的距离,归一化,使得该位图是2×2: (dx, dy) = (2 * x / width - 1, 2 * y / height - 1); d = sqrt(dx*dx + dy*dy)
。(x, y)
是该岛的一部分noise[x, y] > 0.3 + 0.4*d*d
。此步骤试图通过切除远离中心的区域使形状变圆。不过,岛屿比湖泊还有些参差不齐,所以我不确定这些形状是否符合您的喜好。我已经演示了上述算法,并在底部带有控制两个幻数的按钮。魔术数字0.3和0.4的值可能不同,它们会产生您喜欢的形状。
如果您使用的是自顶向下的视图(多边形形状,听起来像您),则可以使用Perlin Noise算法为您生成湖泊,斯坦福大学的那个家伙就是这样做的。
http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/