2010-09-26 84 views
7

有没有什么好方法可以为2D地图生成区域?假设你有一幅世界地图,并且希望以一种有些逼真的外观创建国家或者省份边界。在2D地图上生成区域

+2

你有什么数据?它只是一张平面地图,或者你也有地形信息?海洋?山? – ybungalobill 2010-09-26 21:04:28

+0

只是一个平面的2D平面/地图 – 2010-09-26 21:32:21

回答

1

我会使用脚本/可编程CAD或矢量插图包手工绘制形状,然后使用自定义脚本将数据处理为自定义数据文件或直接转换为源代码。实际上,在过去,我已经做了很多次(通常用于生成用于从CAD线条图创建GraphicsPath对象的VB.NET代码)。

你能更具体吗?这些地区需要什么样的格式?你有什么样的数据?

+0

我的问题更多地是如何使用生成方法(这是一种算法)创建可能适用于国家/地区边界的2D平面的划分。 – 2010-09-26 20:19:36

2

使用Voroni diagram的镶嵌是一种方法,尽管形状可以非常不规则,但它不太现实。

0

一个可能的(和部分)解决方案是在随机点之间进行大量路径检查。很多路径分组的区域表示一个堵塞点,这是“旅行者”必须经过的物理位置。这些观点很适合用作国家间的分隔符。

纪尧姆

1

我最近碰到a link覆盖生成3D景观来了。你可能会在那里找到一些想法。基本要点似乎是使用1/f随机噪声;只是看了一下这些照片,这似乎比Voronoi图的方法更实际(我假设你试图产生任意的“国家”轮廓,而不是试图追踪任何真实世界的数据)。

2

MartinKällman的想法似乎是最好的办法,因为你没有天然的地形来定义一些边界。在您的边界内生成随机点,然后将Voronoi移入国界。我可能会更进一步,比所需的国家多得多点,然后合并几个相邻的单元格以使一些产生的区域凹入。您可以使用类似于随机Kruskal的算法来执行合并(将所有国家,合并两个相邻的国家,重复,直到您有所需的总数)。我无法得到Kylotan的链接,但它可能会描述合并Voronoi生成的单元格的更好方法。