摘 要:在社會的各個領域,地圖都起著至關重要的作用,但是隨著科技及經濟的發展,需要的地圖越來越精細復雜,手工制圖已經不能滿足社會的需要了,計算機可以處理龐大的復雜的數據,將計算機技術引入到地圖學對其建設與發展起了非常大的作用。本文詳細介紹了計算機地圖制圖軟件中數據結構的分類及其符號化,并對利用制圖軟件實現圖形的無級縮放、平移以及快速移動做了詳細闡述。
關鍵詞:數據結構無級縮放平移快速恢復
中圖分類號:TP31文獻標識碼:A文章編號:1674-098X(2011)06(a)-0097-01
1 引言
現今的社會是信息時代,科學與計算機技術飛速發展,特別是尤個人電腦的處理能力大大地提高,使得圖形處理設備快速發展及更新,計算機地圖制圖、地理信息系統和電子地圖像雨后春筍一樣迅速發展起來。計算機地圖制圖運用先進的電子計算機、掃描儀、數字化儀、膠片機、繪圖機、光盤等系統硬件和圖形輸入、識別、制圖、輸出等軟件,從而使資料數字化、符號化以及制圖自動化得以實現。計算機地圖制圖(以下簡稱CAC)過程主要分為數據采集、數據處理與數據輸出三個階段,其中空間數據結構不僅決定了數據采集與處理的方法,還決定數字地圖輸出形式,因此空間數據結構在計算機地圖制圖的過程中有重要作用。
2 地圖空間數據結構
地圖空間數據結構包含矢量數據結構與柵格數據結構。矢量數據結構為點、線、面,其能夠構成現實世界中的各種復雜實體,若可以把問題描述為線或者邊界的時候就特別方便了;然而柵格數據的構是通過空間點密集并將其規則排列來表示整體空間現象的。
一般矢量數據的符號化是由符號化程序并依據符號庫中儲存的符號信息來實現的。在其符號化前要對將要繪制的符號來編碼,并形成符號的信息塊以及建立符號庫。矢量數據符號化包含符號信息塊方式以及程序塊式。
而柵格數據符號化一般采取信息塊方式,基本沒有使用程序塊方式的。
①柵格符號主要缺點是不能夠隨意的縮放。因為縮放的時候柵格必須要用整數來表示其象素,所以縮放各部分的形變就相對較大。
②繪制點符號。把分類后的特征碼對應柵格符號的信息塊調入之后并進行一定的縮放,接著在定位的軸線旋轉之后將符號平移,符號的中心點平移的位置要和預訂的符號定位處一致,這樣就完成了繪制點符號。繪制點符號的本質是在符號的空間選取點符號并將其平移至所需位置。
③繪制線符號。繪制柵格線符號與繪制矢量線狀符號的信息塊的方法類似,只用到基本的繪圖元素,轉彎方向和符號轉彎時寬度決定了線符號轉彎區。此外,繪制線符號的時候其方向的改變在現有的柵格條件下僅三個角度,即135°,90°與45°。
④繪制平面符號。平面符號一般是ni×nj矩陣,第一步是將面區域填充,第二步是取出面內的點陣,ni×nj面符矩陣和分塊來做“與”運算來完成面符的繪圖。同時也可以對后續底色和前景的色彩設計修飾。
3 地圖圖形的控制
3.1 圖形的無級縮放
圖形的坐標變換指把笛卡兒坐標變換為屏幕坐標。手工繪圖的時候,用到的是直角坐標系,因為直角坐標系是由法國人笛卡兒發明的,所以也稱為笛卡兒坐標系。直角坐標系坐標實際上為兩條垂直相交且可延伸到無限遠處的實數線,定義兩條線交點稱為原點,記為(0,0),則紙面上的空間任一點坐標均是由兩個數值X、Y組成,X、Y可以是負數,也可以正數。但是計算機屏幕的坐標系和直角坐標系不同,其原點的位置在默認的情況下位在窗口左上角,X軸正方向向右延伸,Y軸正方向向下延伸,因此所有坐標均為正值。還有坐標軸不是實數線,而是整數線,因此坐標值都是整數,而不是全體實數。因而在計算機圖形學中,直角坐標變換到屏幕坐標的公式如下:
其中:是直角坐標系中的坐標,是其在屏幕設備坐標系中的坐標,則是屏幕上顯示圖形區域,是感興趣各個繪圖區域。
3.2 圖形的平移
對專業的制圖軟件來說,如果使用平移按鈕來移動圖形時,就需要圖形具有漫游效果,本文給出的是利用雙內存副本的技術來實現圖形漫游效果方法:當圖形需要平移的時候,利用漫游圖形內存的副本位圖MemeryBMP以及一幅等大內存緩沖的位圖BufferBMP來表示圖形漫游效果,這樣就避免了在漫游過程中經常出現的屏幕閃爍的現象。當需要移動圖形位置的時候,先把BufferBMP位圖填充空白位圖,接著把內存的副本MemeryBMP中的圖形復制到BufferBMP中來操作平移,然后把平移后的BufferBMP中位圖再一次復制到屏幕,應用這個方法只要鼠標沒有釋放平移的過程并且不斷移動,就可以反復地執行把BufferBMP位圖填充空白之后再把MemeryBMP中內容復制到BufferBMP來實現圖形的平移,最后復制到屏幕來表示這一過程。因此,清屏及漫游圖形的副本在新位置復制是第一步是在第二個內存圖形來完成,第二步再把第二個內存圖形中最后的結果一次性的拷入到窗口圖形,這樣的操作不僅實現了圖形移動,而且又避免在窗口上由于頻繁地清屏造成的閃爍現象。
3.3 圖形的快速恢復
如果屏幕上的圖形遭到破壞后(例如被其它的窗口擋住后又要重新顯示的時侯),就需要圖形可以快速地恢復,而不是簡單的重新繪制。本文介紹了一種雙緩沖技術用于實現圖形快速恢復的方法。首先把圖形繪入窗口并同時的也把圖形拷貝到內存緩沖區儲存副本。設定內存緩沖的標志為mbBufferFlag,當判斷此標志收到窗口圖形被其它的窗口破壞的信息之后,Windows就會以Paint事件來報告給更新窗口圖形,這時就會立刻的執行把圖形由內存復制到窗口操作,這樣就實現了圖形直接、快速恢復,比簡單的重新繪制圖形效果更好。
4 結語
信息科技飛速的發展給各種科學數據的處理提出了新的挑戰,人腦要處理這些龐大的數據就顯得力不從心,因此利用計算機的相關軟件就顯得方便快捷多了。對于地圖的繪制來說,計算機地圖制圖軟件就可以提供了一種直觀、可控、實時的有效處理圖形的手段。其中圖形縮放平移及其快速恢復是這一制圖軟件的重要技術,本文介紹的實現圖形控制的方法已經應用于“國土資源大調查”項目“地學軟件包移植與礦產資源GIS評價系統(Mineral Resources Assessment System based on GIS)”中,經實踐證明,這幾種方法快速有效,其應用的結果也比較令人滿意。此外,計算機地圖制圖軟件技術也可以應用于其它制圖軟件。
參考文獻
[1]徐慶榮,杜道生,黃偉等.計算機地圖制圖原理[M].武漢:武漢測繪科技大學出版社,1993.
[2]Cai Xinhua. An algorithm of drawing stream symbol[J].Bulletin of Surveying and Mapping,1997(11):8-10.
[3]孫以義著.計算機地圖制圖[M].第一版,北京:科學出版社,2000.