在python中生成多边形的陆地

时间:2011-03-30 02:03:36

标签: python vector 2d polygon

是否有人能够推荐一种发电机,算法或任何其他简单的方法来产生一堆随机陆地来构成一颗行星。

我的想法是,我可以将它投射到一个圆圈(我的游戏是2d)并旋转它,这是一个矢量世界地图的东西。

另外,因为这是游戏的美学部分,所以如果地球上没有像极地等大陆那样的常规特征,我也不会太担心。

我使用的语言是python,但是如果有人有一个带有api的生成器,我可以访问我很高兴去那种路径

3 个答案:

答案 0 :(得分:1)

生成自然地形的算法http://en.wikipedia.org/wiki/Perlin_noise Google会为您提供大量的实施方案。它为您提供了一个高地,因此将点分类为 land water 的阈值可以为您提供土地质量。

如果您需要将地块作为多边形,则可以运行行进方形算法以从像素地图http://en.wikipedia.org/wiki/Marching_squares获取多边形

答案 1 :(得分:0)

您可以使用http://pypi.python.org/pypi/noise/然后应用平滑和/或电源滤波器,最后应用阈值函数。

另外,您想要矢量输出还是位图输出?

编辑:请删除,我没有在标题中读到“多边形”。

答案 2 :(得分:0)

您可以尝试Random midpoint displacement method首先生成顶点贴图,然后将其转换为球面坐标以使其成为一个球。