会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Excel技巧 > 操作 > 正文

用Excel软件作有边界道路图

时间:2005-02-12 18:08 来源:Excel Home 作者:子子 阅读:
在绘制城市地图时, 需要画出每条道路。道路的画法可以是有边界和无边界两种画法。有边界道路图如B图所示, 无边界道路图如C图所示。在我手边的一些纸质地图中, 大部分地图道路的绘制都是有边界的, 只有少数是无边界道路图。画无边界道路图比较容易一些, 背景选一种颜色, 用白色在背景上画出一些线条表示道路即可。画有边界道路则比较麻烦, 主要是在路口的处理上麻烦一些。本人经过探索, 发现可以在Excel软件中利用画图工具作出有边界的道路图。
   
交叉平行线图 有边界道路图 无边界道路图
A图
B图
C图

    关于有边界道路图, 本人考虑过如下一些作法。最简单的方法是在画笔中, 用直线一条一条地画道路线, 每条道路按其边界画两条线, 可以得到如A图所示的图形, 然后再用橡皮擦一点一点修改每个十字路口, 把不用的线擦掉, 得到B图所示的图形。想一想就知道有多麻烦, 而且很难保证所画的道路的两条边线一定平行。为了画出平行的直线, 我试着用VB编写程序来画线。程序运行时用鼠标画一条线, 在旁边按设定的间距自动画一条平行线, 最后用SavePicture语句将图片框中的图形存成BMP格式的位图文件, 经过试验, 确实画出来了, 得到的是一堆交叉的平行线条, 每个路口都和A图一样。后来, 我没有费心修改它。
    随着我想到了Word和Excel里的作图工具, 利用它可以作出不同宽度的矢量直线, 线的颜色线宽都可设定、修改, 且有明确的置前置后关系。画有边界道路可以采用白线叠加的方法。画一条较宽的直线, 在它上面放置一条比它窄一点的白色直线, 就可得到一对表示道路边界的平行线。画出几条交叉的粗线, 再它们上面画上白色的交叉的稍细的直线, 因为后画的白线都在顶层, 所以会自动得到一个个交叉的路口, 方便快捷, 且不必修改。于是我决定在Word里制作地图。先是将我自己用铅笔白纸绘制的地图缩印成B5大小, 插入文档作为背景, 然后用作图工具沿着每一条道路画线, 每条线的宽度都与路的宽度对应。机动车道和自行车道隔开的那种道路为主要干道, 线宽取为9磅, 窄一点的是7.5磅, 往下是6磅、4.5磅, 有几条小胡同我取的是3磅。道路图全画完大约有一百多条线, 包括粗细不同的直线和自由曲线。复制道路的工作采用VBA来进行。先是录制宏, 选定一条直线, 复制、粘贴, 改为白色, 线宽减去1.5磅, 向左上移动, 移回原位, 宏录制结束。然后编辑宏, 在宏的VBA代码中加上For-Next语句, 依次对每条直线进行同样的操作。回到Word界面, 执行宏。可以看见一条条道路被复制出来改为白色又放回原位的景象, 一条又一条很是壮观。一百多条道路, 几十秒钟就都处理完了, 效果很好, 路口没有像A图那样交叉的现象。而且所作的是放大不失真打印无锯齿的矢量图, 用激光打印机打印出来得到光滑笔直的道路图, 非常漂亮。在地图中添加一大块浅黄色的多边形, 并把它置于最底层, 就得到了漂亮的街区图。
    就有边界道路图的绘制, 我也考虑过其它途径, 其一是AutoCAD, 其二是PhotoShop。在CAD中, 可以直接画平行线, 然后可以修改每个交叉处的交叉形式。但在道路宽窄不同时需要画间距不同的平行线, 需要经常设定间距, 稍显麻烦, 当时考虑到这一点就没采用画平行线的方法, 而是用偏移(Offset)的方法。以扫描得到的地图作为背景图案, 沿着道路的一条边画一条直线, 点击工具条上的Offset按钮, 执行偏移操作, 先不选对象实体, 按T键, 选其中的(Through)功能。然后选中一条直线, 在对应的道路的另一条边界上点一下, 得到了与背景道路边界对齐的两条平行线。一百多条道路很快就画完了, 路口同样是A图的形式。因为我用的都是单根直线, 所以修改路口时不能简单的修改平行线相交方式, 只能在每个路口依次修改。用Break命令断开, 用夹持点移动端点, 用Trim命令修剪。费了不少事, 麻烦了好一阵。现在想想, 也许用平行线作图也麻烦不到哪去, 应该采用之。但不管怎么说, 在路口的处理上, 在Word里作图是相当省事的。
    在PhotoShop里作图是后来想到的方法。其思路是先作出一条条表示道路的直线, 然后用选取粗线颜色的区域, 得到选区后将选区转化为路径, 用细笔头对路径描边。思路简单, 可行性不强, 而且用PhotoShop画直线图形实在是剑走偏锋。我后来简单试了一下, 直线区域转化为选区没什么问题, 选区的边缘是笔直的, 但选区转化成路径后大部分边缘都变弯了, 描边后得到的道路边界都是弯曲的, 像一幅卡通画, 罢了。
    在CAD里作道路图, 其街区的上色涉及到区域填充(Hatch), 稍为麻烦。有时边界不准, 有时需要重新填充。相比之下, 在Word里给街区时, 在背景作一大块浅色多边形就了事, 更容易一点。另外在Word里修改、移动道路时也很简单, 这两点是CAD所不及的。我曾尝试在CAD里效仿Word里的作法用叠加白线的方法来作出有边界道路, 却发现两个问题:CAD里线宽不是随便设的, 最宽为2.11毫米, 实在想画粗线就得用多义线(Polyline);另外在CAD里线的颜色没有白色只有反白。想想也是, 谁会在工程制图里打印5磅的白色线条呢?太难为它了, 罢了。
    后来我发现在Excel软件中作地图比Word更方便。与Word相比, Excel有如下四个优点。一、在Excel中选中某根直线时, 工具条编辑栏的左端会显示该直线的名称及序号。这点在编辑宏时很有用。二、地图画出来后很大, 得A3纸才装得下。但打印A3的激光打印机很难找到, 一般是考虑将大图分两部分用A4的纸打印出来然后拼页。但在Word中我试了几种方法也没能把图打印到两页纸上。最后我发现在Excel软件中可以实现跨页打印, 解决了我的一大难题。三、在Excel软件中作图区域很大, 在放大图形时不必考虑幅面大小。四、在Excel中可以方便的编辑宏, 在VBA中利用“ .Text = Cell(I, 1)”的方法可以将单元格里的内容转入文本框, 建立数百个写有单位地名的文本框, 以放置到地图上去。应用Excel软件, 我利用作图工具, 结合VBA的应用, 作出了铁岭地图。
    察看铁岭地图在宏的VBA代码中加上For-Next语句, 依次对每条直线进行同样的操作。回到Word界面, 执行宏。可以看见一条条道路被复制出来改为白色又放回原位的景象, 一条又一条很是壮观。一百多条道路, 几十秒钟就都处理完了, 效果很好, 路口没有像A图那样交叉的现象。而且所作的是放大不失真打

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: