APP下载

基于Core lDRAW X4、VB6.0国界符号绘制的技术研究

2014-04-25崔创来

经纬天地 2014年5期
关键词:国界白线黑线

□崔创来

(山西省地图集编纂委员会办公室,山西太原030002)

基于Core lDRAW X4、VB6.0国界符号绘制的技术研究

□崔创来

(山西省地图集编纂委员会办公室,山西太原030002)

介绍了国界的重要性,通过分析现阶段CorelDRAW X4中绘制国界符号常用的方法以及其存在的不足,从而提出利用VB6.0开发国界符号绘制程序的必要性。图文并茂,通过VB代码剖析了主要技术的实现。

国界符号;CorelDRAW X4;VB6.0

1.引言

境界是六大地理要素之一,是地图必须具备的内容。

普通地图上,境界分为政区境界和其他境界。政区境界包括国界(已定、未定),省、自治区、中央直辖市界,自治州、盟、省辖市界,县、自治县、旗界等。其他境界包括地区界、停火线界和禁区界等。境界用不同结构、不同粗细与不同颜色的点线符号表示。

国界是一个国家行使主权的界线,是国家领土范围的地理界线。具有相对的稳定性、限定性和不可侵犯性。国界要严格依据我国政府正式签订的边界条约、边界议定书及附图准确绘出。待议地区的界线,按我国政府有关规定处理。编绘完成后须经有关部门审查批准。已定国界符号通常用表示,未定国界符号通常用表示。

2.常用方法

目前,CorelDRAW X4中绘制国界符号常用的方法有以下几种(以已定国界为例,未定国界方法类似):

(1)在没有选中任何对象的情况下,打开“轮廓笔”对话框,确定线宽;单击轮廓笔“编辑样式”按钮,弹出“编辑线条样式”窗口,将其设置为8黑2白1黑2白;用贝塞尔工具沿国界线中心绘制曲线。此时,绘出的曲线为样式;利用画线工具画竖线并设置其宽度、长度,最后通过复制、粘贴、旋转完成垂直短线的摆放。

(2)在样式设置、绘制曲线方面与第一种方法相同,主要区别是垂直短线的绘制,它是通过在曲线两端放置设置好宽度及长度的垂线,然后点击效果菜单下的调和工具,通过路径Path按钮建立以国界线为目标的新路径,设置合适的固定间距,勾选旋转全部对象来完成。

(3)先用FontCreator制作国界线单元符号字体库文件;再将其拷贝至Windows/ Fonts/目录下;打开CorelDRAW X4用贝塞尔工具沿国界线中心绘制曲线,点击文本菜单下“使文本适合路径”命令使用国界字体符号。

以上是目前较为常见的国界符号画法,第一种方法存在人工参与比较多、工作量大、精度低等缺点;第二种方法较前一种效率提高了很多,但在计算固定间距时容易造成垂直短线与水平横线之间错位;最后一种方法在设置线宽及长度方面不方便,只能通过调整字体大小来接近要求。另外,在国界线急弯处符号效果会不太理想。

鉴于上述几种方法存在不足以及国界符号绘制的严肃性,通过CorelDRAW X4自带的开发接口CorelDRAW 14.0 Library,利用VB6.0开发国界符号绘制程序就迫在眉睫。

3.程序开发

3.1 环境设置

在VB6.0中单击工程菜单下“引用”命令,弹出“引用”窗口,在引用列表中勾选“Corel-CorelDRAW 14.0 Libray”。

添加引用

在通用声明中添加

Dim core As CorelDRAW.Application

3.2 “一横一点”符号绘制

3.2.1 计算“一横一点”各构成部分长度

“—·—·”单位符号“一横一点”由两实两虚部分组成,两实即横线(简称黑线)和点,两虚即点两端空白的部分(简称白线)。一般它们之间的比例关系为8黑2白1黑2白。当然用户可以根据需要通过程序界面重新设置,也可以直接设置黑线或白线的长度,这两种方式是相互联动的,其关系为长度=黑白节×国界线宽度。实部“点”其长度或直径与国界线宽度相同。现将黑线长定义为txthc,白线长定义为txtbc,国界线宽度定义为txtkd,那么单位符号长length0=Val(Me.txthc.Text)/25.4+2*Val(Me.txtbc.Text)/25.4+Val(Me.txtkd.Text)/ 25.4

红线区域为长度及比例关系输入部分

因此,以上述程序界面数字为例,黑线长度为8×0.25=2毫米,白线长度为=2× 0.25=0.5毫米,点长度为0.25毫米,单位符号长度为2+0.5×2+0.25=3.25毫米。

3.2.2 在各构成部分交接处添加节点,并打断

将沿国界线中心绘制的曲线定义为:Dim guojie As CorelDRAW.Shape,其长度为length1=guojie.Curve.Length,整个曲线包含单位符号数量为num=length1除以length0取整,在曲线上添加节点可以通过guojie. Curve.SubPaths(1).AddNodeAt方法完成。定义 Dim nodranAsNew CorelDRAW. NodeRange,将添加的节点放入到nodran中,利用nodran.BreakApart、guojie.BreakA-part方法将这些节点处打断,结合3.2.1。具体参考代码如下:

3.2.3 删除虚部,选择实部“点”形状

比较打断后各曲线与“一横一点”各构成部分的长度,定义ShapeRange对象,

将黑线、点、白线分别添加到ran1,ran2、ran3中,利用ran3.Delete方法删除白线(即虚部)。

实部“点”的形状可以在方形和圆形间选择,具体由编辑确定。对于方形,通过上述步骤即可完成。对于圆形,需要进行图形替换。首先,创建直径等于国界线宽度的圆,ActiveLayer.CreateEllipse2(0,0,(Val(Me.txtkd.Text)/25.4)/2,,,,False),定义CorelScript对象并引用 Set scr=core. CorelScript,通过其方法 GetObjectsCDRStaticID()得到所画圆的编号,属性SetReferencePoint 9将中心点设置为定位点,利用 GetPosition x,y、DuplicateObject、Set-Position x,y方法完成坐标获取、图形复制、替换。参考代码如下:

3.3 垂直短线绘制

打开“轮廓笔”对话框,在窗口右上方是“箭头”选项,点击下拉表弹出各式各样的箭头,其中包含垂直短线箭头,将它添加到曲线两端,结果发现无论曲线如何弯曲,它始终垂直于曲线两端,符合制作国界符号要求。基于这种思路,创建Shape对象Dim jiantou As CorelDRAW.Shape,通过jiantou.CreateArrowHead方法创建箭头。然后将创建的箭头添加到国界符号黑线的两端。参考代码如下:

3.结束语

本文介绍了目前CorelDRAW X4中绘制国界符号几种常用的方法,并分析它们存在的不足,提出了通过CorelDRAW X4自带的开发接口CorelDRAW 14.0 Library开发程序的必要性,文章不仅图文并茂进行了详尽地阐述,而且通过实例代码逐步剖析,介绍了环境配置、“一横一点”符号绘制,图形替换以及垂直短线绘制,最终完成了已定国界符号“”的绘制,该程序已经在做图实践中得到了很好的应用。

【1】乔俊军,房雪玲,张海文.基于CorelDRAW的制图要素符号化研究[J].测绘与空间地理信息,2013(8):30-33.

【2】张力果,赵淑梅.地图学[M].高等教育出版社,1983.

【3】国家测绘局人事司、国家测绘局职业技能鉴定指导中心.地图制图(技师版)[M].测绘出版社,2009.

【4】祝国瑞,郭礼珍,尹贡白,徐永利.地图设计与编绘[M].武汉大学出版社,2000.

【5】张荣群,袁勘省,王英杰.现代地图学基础[M].中国农业大学出版社,2002.

P231.5

B

2095-7319(2014)05-0044-05

崔创来(1976—),男,汉族,山西稷山人,工程师,太原理工大学测绘工程专业,主要从事电子地图与GIS开发工作。

猜你喜欢

国界白线黑线
黑线
青丝与白线
在失败中奋进
白线
虾背黑线真的特别“脏”吗
青丘白线线
快乐不分国界,童心超越时间
七巧数独
“华人”牌的骄傲
雷公奇遇记之两面国