9
11
2010
39

经过接近10天的努力,华中大校园的地图终于完成了.

先show一下运行效果...

这个图片中的是演示我的自动寻径功能,路径有点挫...因为图中取的点太少了,所以导致路径不是按照实际的路来走的。

不过,也就将就着点啦laugh。自动寻径的算法采用的是经典的迪杰特斯拉算法,对于我给的节点(<100)个,程序运行的效果还是很理想的。

再多,一是我没有那个耐心一个个添加进去,另外一个,也没那个必要,一个校园内,100个节点,已经差不多了。

接下来几天准备一边写报告,一边在这里把这个地图的各个部分详细的解说下。

先大致说下吧,

地图的思路还是我前面一篇文档中介绍的,窗口+图片。就是,我对一张虚拟的大图片建立坐标系,把它作为我的窗口的背景,然后拖曳功能就是不断修改窗口在背景中的相对坐标,然后重绘窗口而实现一种图片在拖曳的效果。这里这个窗口实际的实现是一个gtk+的drawarea组件。然后绘制用的库是cairo库。

然后另外一个主要的功能就是自动寻径了,我的地图信息采用的是图的矩阵存储。迪杰特斯拉算法网上,书上到处都有讲的,我只是给加了个图形显示功能。有人可能要问我这些坐标信息怎么来的,其实这里我走了点捷径,前面说过节点是我给的,其实,准确来说,是地图的用户给的,我只是在程序中给了一个接口,用户可以自己在地图上面绘制一条路径,然后添加到地图中去。我就是通过这种办法,把我的节点一个个添加进去的。

演示如下:

图片中大家应该可以看到,黑色的部分是我用鼠标在地图上面绘制的路径,这里我就代表添加一条边(

Category: 未分类 | Tags:

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com