如何使用C语言创建世界地图?
在这里,我想生成一个1000 * 1000的二维世界地图数组。在阵列中,陆地部分标记为值1,海洋部分标记为值0.是否有任何简单的方法可以创建?
答案 0 :(得分:4)
显然,没有算法描述大陆海岸线的形状;)
但你可以使用例如Smrender(http://www.abenteuerland.at/smrender/),用它的海岸线喂它。 OpenStreetMap或Naturalearthdata和单一规则。让它创建一个1000x1000像素的PNG图像。
编辑:
使用ImageMagick(转换),您可以将PNG直接转换为C头文件作为数组。
转到Openstreetmap.org(或Googlemaps),缩小直到看到整个世界,制作屏幕截图,在您喜欢的图像处理程序中打开它并剪切并调整大小为1000x1000,然后运行convert input.png output.h
。
哈德
答案 1 :(得分:1)
我在几个小时前在游戏开发中写了一个可以帮助你的答案,这是用topic编写的,用javascript写的,但它很难翻译成c。< / p>
在示例中,您填充0的整个地图,然后随机跟踪路径,如果您想稍后平滑地图,您可以制作一个循环所有watter切片的片段并将其转换为土地它附近有3个或更多的地砖,做40到60次,你会得到一个更光滑的岸边,没有&#34;洞&#34;在非洲大陆。
EDIT 使用C中的演示更新答案。 我没有对它进行测试,但是如果你包含标题并检查代码,那就是答案。
data: [
{
x:0,
y:5,
dataLabels:{
enabled: true,
format: 'label 1: {y}'
}
},
[10,5]
]
答案 2 :(得分:0)
你可以有一些程序或脚本(作为输入一些地球图像的表示),它会生成一个长C文件,如
const char map[1000][1000] = {
{'0', '1', //.... etc for the first fow
},
{'0', '0', '0', '1', //... etc
}
/// etc for other rows
};
另请参阅XBM示例。