曾克明
(湖南地圖出版社,湖南長(zhǎng)沙 410007)
CorelDRAW軟件的二次開(kāi)發(fā)在地圖制圖中的應(yīng)用與實(shí)例
曾克明
(湖南地圖出版社,湖南長(zhǎng)沙 410007)
針對(duì)CorelDRAW軟件在地圖制作時(shí)符號(hào)的輸入、修改替換和特種線型的輸入、縮放的繪制工作量大等難點(diǎn),應(yīng)用二次程序開(kāi)發(fā)功能,較好地解決了生產(chǎn)過(guò)程中遇到的上述問(wèn)題,并舉例說(shuō)明符號(hào)替換和河流粗細(xì)變化程序的基本思路和部分源程序設(shè)計(jì)方法實(shí)例。
CorelDRAW;二次開(kāi)發(fā);腳本程序;VisualBasic;程序設(shè)計(jì)
地圖是根據(jù)一定的數(shù)學(xué)法則,將地球上的自然和社會(huì)現(xiàn)象,通過(guò)制圖綜合所形成的信息,運(yùn)用符號(hào)系統(tǒng)縮繪到平面上的圖形,以傳遞它們的數(shù)量和質(zhì)量在時(shí)間上和空間上的分布和發(fā)展變化[1]。地圖按內(nèi)容分為普通地圖和專(zhuān)題地圖兩大類(lèi),本文側(cè)重于探討專(zhuān)題地圖。鑒于專(zhuān)題地圖有別于普通地圖的幾何精度和專(zhuān)題地圖內(nèi)容表示方法的多樣性, CorelDRAW、Freehand、Illustrator等矢量繪圖軟件常用來(lái)創(chuàng)造美觀、生動(dòng)的專(zhuān)題地圖,其中應(yīng)用最廣的是CorelDRAW軟件。
Corel公司創(chuàng)立于 1985年,CorelDRAW軟件以其高質(zhì)量的工具軟件、PC繪圖及多媒體軟件在全球的圖形軟件和商業(yè)應(yīng)用軟件領(lǐng)域處于國(guó)際領(lǐng)先地位。到目前為止,CorelDRAW軟件已經(jīng)公布了 15個(gè)版本。在地圖制作中,CorelDRAW軟件的優(yōu)點(diǎn)是易學(xué)易用,線劃、文字、符號(hào)的輸入方便快捷,形成的矢量文件小,在創(chuàng)制地圖藝術(shù)性方面有著出色的表現(xiàn),讓使用者可以非常自由地發(fā)揮與創(chuàng)造。但是CorelDRAW不是地理信息系統(tǒng)軟件,在地圖制圖中難免存在一些不方便的地方。比如 CorelDRAW在符號(hào)輸入、符號(hào)修改替換、長(zhǎng)城線型符號(hào)的制作、標(biāo)準(zhǔn)國(guó)界、統(tǒng)改線型等過(guò)程時(shí),制作非常麻煩,不易修改,而且制作出來(lái)的產(chǎn)品也不標(biāo)準(zhǔn)。針對(duì)這些不足,我們利用 Core lDRAW軟件本身具有的二次開(kāi)發(fā)功能,進(jìn)行了一些研究,編寫(xiě)了一些程序,由計(jì)算機(jī)來(lái)完成這些較難的工作,取得了一些效果。
CorelDRAW軟件的二次開(kāi)發(fā)常用的主要有兩種方法,一種是相對(duì)比較簡(jiǎn)單的 Corel Script腳本程序,另一種是VisualBasic語(yǔ)言程序設(shè)計(jì)。筆者利用這兩種方法進(jìn)行了程序開(kāi)發(fā),將一些工作量大的操作做成了程序,如地貌符號(hào)的替換、河流的漸變等。這些程序的開(kāi)發(fā)將原來(lái)需要一天的工作量,縮短為最多 1小時(shí),而且自動(dòng)化、智能化程度很高,極大地提高了我社地圖制作工作的效率。
1.Corel Script程序化語(yǔ)句及函數(shù)(腳本設(shè)計(jì))
Corel Script程序化語(yǔ)句及函數(shù)是由傳統(tǒng)的Basic程序化語(yǔ)言所衍生出來(lái)的。Corel Script有一個(gè)非常方便的錄制程序,在錄制的狀態(tài)下,用戶的操作將被錄制,并形成一個(gè) Script文件,方便下次使用。使用 Corel Script程序語(yǔ)言,可以讓圖形圖像處理工作自動(dòng)化,達(dá)到事半功倍的效果。但并不是所有操作都可以通過(guò)錄制來(lái)生成腳本程序,應(yīng)用程序函數(shù)就是無(wú)法錄制的,必須手動(dòng)將其寫(xiě)入 Script中。
Corel Script例子 (顯示一個(gè)簡(jiǎn)單的 Corel Script,先檢查選取對(duì)象的尺寸,然后將其尺寸加倍):
腳本程序在地圖制圖中,經(jīng)常用于特效字體的設(shè)計(jì),利用腳本程序可以事半功倍。
2.Visual Basic語(yǔ)言程序設(shè)計(jì)
VisualBasic語(yǔ)言程序設(shè)計(jì)需要一定的程序設(shè)計(jì)基礎(chǔ)。
下面以筆者主持設(shè)計(jì)的兩個(gè)程序(符號(hào)替換和河流變化)為例,說(shuō)明 Core lDRAW二次開(kāi)發(fā)在地圖制圖的應(yīng)用實(shí)例。
(1)符號(hào)替換
基本思路:中心坐標(biāo)不變,用一個(gè)對(duì)象替換另一個(gè)對(duì)象。
具體步驟:
1)將標(biāo)準(zhǔn)符號(hào)命名,并計(jì)算符號(hào)中心位置的坐標(biāo)(X1,Y1)
X1=shape1.Positionx,Y1=shape1.Positiony
2)計(jì)算需替換的符號(hào)的中心位置坐標(biāo)(X2,Y2)
X2=shape1.Positionx,Y2=shape1.Positiony
3)將標(biāo)準(zhǔn)符號(hào)復(fù)制至需替換符號(hào)的位置,進(jìn)行替換,并刪除原符號(hào)
Set shape2=shape1 Duplicate(x2-x1,y2-y1)循環(huán) 1)~2),可以完成每一個(gè)符號(hào)的替換。在實(shí)際操作時(shí),可以將此程序做成一個(gè)工具,便于使用,具體操作過(guò)程是:
1)制作一個(gè)標(biāo)準(zhǔn)符號(hào),確定好參數(shù),并將它命名為“fuhao”(也可以是其他名稱(chēng),只要在程序設(shè)計(jì)時(shí)確定);
2)選擇所有需要替換的符號(hào)和標(biāo)準(zhǔn)符號(hào);
3)運(yùn)行程序,自動(dòng)完成符號(hào)替換。
源程序(測(cè)試通過(guò)):
(2)河流自動(dòng)變化
基本思路:定義河流起始和結(jié)尾粗細(xì),中間自動(dòng)變化。
主程序(已測(cè)試通過(guò),具體步驟不再贅述):
以上就是符號(hào)替換和河流自動(dòng)變化的源程序,當(dāng)然,還可以進(jìn)一步完善它,比如增加替換的符號(hào)數(shù)目計(jì)算、時(shí)間、算法和人機(jī)對(duì)話功能,增加河流自動(dòng)打斷的人工智能等。
河流粗細(xì)變化、特效字體制作和符號(hào)替換是目前應(yīng)用 CorelDRAW的二次開(kāi)發(fā)比較多的情況,由于地圖的復(fù)雜性,還有許多問(wèn)題尚待進(jìn)一步研究解決,例如繪制萬(wàn)里長(zhǎng)城符號(hào)、標(biāo)準(zhǔn)國(guó)界 (“工”字型)等一直是地圖中繪制和修改的難題。
[1] 祝國(guó)瑞.地圖學(xué)[M].武漢:武漢大學(xué)出版社,2004.
[2] 東箭工作室.CorelDRAW 9中文版初中級(jí)教程 [M].北京:清華大學(xué)出版社,2000.
[3] 羅壽枚.專(zhuān)題制圖原理及其計(jì)算機(jī)應(yīng)用 [M].長(zhǎng)沙:湖南地圖出版社,2001.
[4] 閆浩文,褚衍東,楊樹(shù)文,等.計(jì)算機(jī)地圖制圖原理與算法基礎(chǔ)[M].北京:科學(xué)出版社,2007.
Secondary Development of Software CorelDRAW:Applications and Examples
ZENG Keming
0494-0911(2010)08-0060-02
P283.7
B
2010-04-21
曾克明(1974—)男,湖南瀏陽(yáng)人,工程師,主要從事計(jì)算機(jī)地圖制圖工作。