VB可視化編程的設(shè)計(jì)方案_第1頁
VB可視化編程的設(shè)計(jì)方案_第2頁
VB可視化編程的設(shè)計(jì)方案_第3頁
VB可視化編程的設(shè)計(jì)方案_第4頁
VB可視化編程的設(shè)計(jì)方案_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1 視化編程的設(shè)計(jì)方案 第一章 緒 論 面狀符號(hào)的填充在地理信息系統(tǒng)、計(jì)算機(jī)圖形學(xué)中都有充分的提到。 信息是用文字、數(shù)字、符號(hào)、語言、圖像等的內(nèi)容、數(shù)量或特征,從而向人們(或系統(tǒng))提供關(guān)于現(xiàn)實(shí)世界新的事實(shí)和知識(shí),作為生產(chǎn)、建設(shè)、經(jīng)營管理、分析和決策的依據(jù)。信息技術(shù)是當(dāng)今世界高技術(shù)群的代表,它可以幫助人們收集情報(bào)、揭示問題和預(yù)測未來,極大地?cái)U(kuò)大和增強(qiáng)人類適應(yīng)自然的能力,為人類社會(huì)帶來更大的益處。地理信息系統(tǒng)是一種十分重要的空間信息系統(tǒng),它是在計(jì)算機(jī)硬件、軟件系統(tǒng)的技術(shù)支持下,對(duì)整個(gè)或部分地球表層空 間的地理分布數(shù)據(jù)進(jìn)行采集、儲(chǔ)存、管理、運(yùn)算、模擬、分析、顯示和描述的技術(shù)系統(tǒng)。由郭志達(dá)主編的地理信息系統(tǒng)原理與應(yīng)用一書中的第 6章中講到了符號(hào)及空間資料的可視化。 計(jì)算機(jī)圖形學(xué)是人類近 30 年來在科學(xué)技術(shù)領(lǐng)域中取得的一項(xiàng)重大成就。國際標(biāo)準(zhǔn)化組織給計(jì)算機(jī)圖形學(xué)做出了如下定義:“計(jì)算機(jī)圖形學(xué)是研究通過計(jì)算機(jī)將數(shù)據(jù)轉(zhuǎn)換為圖形,并在專用顯示設(shè)備上顯示的原理、方法和技術(shù)的學(xué)科?!痹诎l(fā)達(dá)國家中,計(jì)算機(jī)圖形學(xué)已經(jīng)廣泛地應(yīng)用于工程技術(shù)與社會(huì)生活的各個(gè)領(lǐng)域之中,如機(jī)械、電子、建筑、航空航天、交通運(yùn)輸?shù)鹊取S山褂篮椭骶幍挠?jì)算 機(jī)圖形學(xué)教程(第二版)一書中詳細(xì)地介紹了有關(guān)區(qū)域填充的問題,同時(shí),由孫家廣主編的計(jì)算機(jī)圖形學(xué)中也有相關(guān)的介紹。 像上面提到的介紹面狀符號(hào)的填充的書籍不勝枚舉,在這里,我就想大家介紹這幾本。下面就具體地說說我是如何實(shí)現(xiàn)面狀符號(hào)的填充的。 在地圖中,往往需要用一區(qū)域表示地物、地貌,所以要對(duì)區(qū)域進(jìn)行填充顏色或圖案以示區(qū)別。在這次設(shè)計(jì)中,我用的是編程的方法來實(shí)現(xiàn)這一目的的,更進(jìn)一步講是用程來實(shí)現(xiàn)的。 眾多編程語言中比較容易理解、掌握的一門語言。本次設(shè)計(jì)的具體做法是:首先,先畫出一任意多邊形(設(shè)計(jì)當(dāng)中 我是用五邊形為例的),然后求出該多邊形的最小外接矩形,再對(duì)最小外接矩形進(jìn)行劃分,將其劃分為 出這些小矩形的中心坐標(biāo),然后判斷哪些小矩形是位于多邊形的內(nèi)部的,做這一判斷有很多種方法,在這次設(shè)計(jì)中介紹了三種方法:求交法、柵格法、面積法。最后,對(duì)位于多邊形內(nèi)部的小矩形進(jìn)行填充,比如說以小矩形的中心為中心畫圓,在這里還得判斷個(gè)別小矩形的中心離多邊形邊的距離是否大于所填圓的半徑,對(duì)那些小于半徑的小矩形不予以填充,至此,整個(gè)設(shè)計(jì)就結(jié)束了。 由于設(shè)計(jì)者的水平有限,所以設(shè)計(jì)的結(jié)果不是很完美,仍然存在著缺陷,像設(shè) 計(jì)程序僅僅適用于凸多邊形,而對(duì)于凹多邊形就不適用了,這是因?yàn)樵谂袛嗄男┬【匦挝挥诙噙呅蝺?nèi)部時(shí),我用的是面積法,面積法是位于多邊形內(nèi)部的點(diǎn)與多邊形各頂點(diǎn)連接構(gòu)成的三角形的面積和等于多邊形的面積,而面積法不適用于凹多邊形。 2 第二章 基礎(chǔ)知識(shí) 第一節(jié) 介 一、 述 稱 美國微軟( 司推出的 境下的軟件開發(fā)工具,使用 以既快又簡單地開發(fā) 用軟件。 指開發(fā)圖形用戶界面( 方法。 意思是“視覺的”或“可視的”,也就是直觀的編程方法。在 引入了控件的概念,如各種各樣的按鈕、文本框、復(fù)選框等。 這些控件模式化,并且每個(gè)控件都由若干屬性來控制其外觀、工作方法。這樣,采用 法無需編寫大量代碼去描寫界面元素的外觀和位置,而只要把預(yù)先建立的控件加到屏幕上。 指 言 ,之所以叫做“ 是因?yàn)樗褂昧?言作為代碼。 隨著微型計(jì)算機(jī)技術(shù)的飛速發(fā)展,美國微軟公司的 其具有多任務(wù)性,圖形用戶界面,動(dòng)態(tài)數(shù)據(jù)交換,對(duì)象鏈接與嵌入等強(qiáng)大功能,而成為當(dāng)今微型計(jì)算機(jī)操作系統(tǒng)的主流產(chǎn)品。眾多的軟件開發(fā)者已從原來的 件開發(fā)轉(zhuǎn)向多商用軟件公司為適應(yīng)這一趨勢推出了不少 境下的軟件開發(fā)工具,如 +、 +、 等。使用僅可以感受到 來的新技術(shù),新概念和新的方法,而且 目前眾多件開發(fā)工具中效率最高的一個(gè)。另外 列產(chǎn)品得到了計(jì)算機(jī)工業(yè)界的承認(rèn),得到了許多軟件開發(fā)商的大力支持。 二、 發(fā)展過程 早在 1991 年,為了簡化 用程序的開發(fā),微軟公司推出了 看法以及使用 方法。 1992 年,經(jīng)過對(duì) 修改后, 微軟推出了 1993 年經(jīng)再次修改完善后, 市了。從這一版開始, 幾乎是無所不能的了。 1995 年,隨著 5 轟轟烈烈的發(fā)布, 隨之問世了。 1997 年,微軟公司開始推出 發(fā)工具套件 中包括了 1998 年發(fā)布的 8 則包括了 前的版本主要應(yīng)用于 境中 16 位程序的開發(fā),從 后的版本則只能運(yùn)行在 5 或 T 操作系統(tǒng) 3 下,是一個(gè) 32 位應(yīng)用程序的開發(fā)工具。 微軟推出的 族最新成員,它共有 3 個(gè)版本:標(biāo)準(zhǔn)版,專業(yè)版,企業(yè)版。 三、 特點(diǎn) 目前所有開發(fā)語言中最簡單,最容易使用的語言 。作為程序設(shè)計(jì)語言, 1. 可視化的設(shè)計(jì)平臺(tái) 用傳統(tǒng)程序設(shè)計(jì)語言編程時(shí),需要通過編程計(jì)算來設(shè)計(jì)程序的界面,在設(shè)計(jì)過程中看不到程序的實(shí)際顯示效果,必須在運(yùn)行程序的時(shí)候才能觀察。如果對(duì)程序的界面不滿意,還要回到程序中去修改,這一過程常常需要反復(fù)多次,大大影響了編程的效率。供的可視化設(shè)計(jì)平臺(tái),把 面設(shè)計(jì)的復(fù)雜性“封裝”起來。程序員不必再為界面的設(shè)計(jì)而編寫大量的程序代碼,只需按設(shè)計(jì)的要求,用系統(tǒng)提供的工具在屏幕上“畫出”各種對(duì)象, 動(dòng)產(chǎn)生界面設(shè)計(jì)代碼,程序員所需要編寫的只 是實(shí)現(xiàn)程序功能的那部分代碼,從而大大提高了編程的效率。 2. 面向?qū)ο蟮脑O(shè)計(jì)方法 用面向?qū)ο蟮木幊谭椒ǎ?把程序和數(shù)據(jù)封裝起來作為一個(gè)對(duì)象,并為每個(gè)對(duì)象賦予相應(yīng)的屬性。在設(shè)計(jì)對(duì)象時(shí),不必編寫建立和描述每個(gè)對(duì)象的程序代碼,而是用工具“畫”在界面上,由 動(dòng)生成對(duì)象的程序代碼并封裝起來。 3. 事件驅(qū)動(dòng)的編程機(jī)制 過事件執(zhí)行對(duì)象的操作。在設(shè)計(jì)應(yīng)用程序時(shí),不必建立具有明顯開始和結(jié)束的程序,而是編寫若干個(gè)微小的子程序,即過程。 4. 結(jié)構(gòu)化的設(shè)計(jì)語言 在結(jié)構(gòu)化的 言基礎(chǔ)上 發(fā)展起來的,加上了面向?qū)ο蟮脑O(shè)計(jì)方法,因此是更具有結(jié)構(gòu)化的程序設(shè)計(jì)語言。 5. 充分利用 源 供的動(dòng)態(tài)數(shù)據(jù)交換( 程技術(shù),可以在應(yīng)用程序中實(shí)現(xiàn)與其他 不同的應(yīng)用程序之間進(jìn)行通信的功能。 供的對(duì)象鏈接與嵌入( 術(shù)則是將每個(gè)應(yīng)用程序都看作一個(gè)對(duì)象,將不同的對(duì)象鏈接起來,嵌入到某個(gè)應(yīng)用程序中,從而可以得到具有聲音,影像,圖像,動(dòng)畫,文字等各種信息的集合式文件。 可以通過動(dòng)態(tài)鏈接庫( 術(shù)將 C/C+或匯 編語言編寫的程序加入到 是調(diào)用 用程序接口( 數(shù),實(shí)現(xiàn) 具有的功能。 6. 開放的數(shù)據(jù)庫功能與網(wǎng)絡(luò)支持 有很強(qiáng)的數(shù)據(jù)庫管理功能。不僅可以管理 式的數(shù)據(jù)庫,還能訪問其他外部數(shù)據(jù)庫。另外, 提供了開放式數(shù)據(jù)庫鏈接( 能,可以通過直接訪問或建立連接的方式使用并操作后臺(tái)大型網(wǎng)絡(luò)數(shù)據(jù)庫。在應(yīng)用程序中,可以使用結(jié)構(gòu)化查詢語言( 接訪問 的數(shù)據(jù)庫,并提供簡單的面向?qū)ο蟮膸觳僮髅?,多用戶?shù)據(jù)庫的加鎖機(jī)制和網(wǎng)絡(luò)數(shù)據(jù)庫的 編程技術(shù),為單機(jī)上運(yùn)行的數(shù)據(jù)庫提供絡(luò)接口,以便在分布式環(huán)境中快速而有效地實(shí)現(xiàn)客戶 /服務(wù)器( 案。 4 第二節(jié) 視化編程的基本概念 傳統(tǒng)的編程方法使用的是面向過程、按順序進(jìn)行的機(jī)制,其缺點(diǎn)是程序員始終要關(guān)心什么時(shí)候發(fā)生什么事情,處理 境下的事件驅(qū)動(dòng)方式工作量太大。 用的是面向?qū)ο?、事件?qū)動(dòng)編程機(jī)制,程序員只需編寫響應(yīng)用戶動(dòng)作的程序,而不必考慮按精確次序執(zhí)行的每個(gè)步驟,編寫的代碼相對(duì)較少。另外, 供的多種“控件”可以快速創(chuàng)建強(qiáng)大的應(yīng)用程序而不需涉及 不必要的細(xì)節(jié)。 用的“可視化編程”方法,是“面向?qū)ο缶幊獭奔夹g(shù)的簡化版。在 境中所涉及到的窗體、控件、部件和菜單項(xiàng)等均為對(duì)象,程序員不僅可以利用控件來創(chuàng)建對(duì)象,而且還可以建立自己的“控件”,這是 境下的編程新概念。 一、 對(duì)象的屬性、事件和方法 在現(xiàn)實(shí)生活中,任何一個(gè)實(shí)體都可以視為一個(gè)對(duì)象( 在 ,常用的對(duì)象有工具箱中的控件、窗體、菜單、應(yīng)用程序的部件以及數(shù)據(jù)庫等。從可視化編程的角度來看,這些對(duì)象都具有屬性和方法。簡單地說,屬性用于描述對(duì) 象的一組特征,方法為對(duì)象實(shí)施一些動(dòng)作,對(duì)象的動(dòng)作則常常要觸發(fā)事件,而事件又可以修改屬性。 1. 對(duì)象的屬性 每個(gè)對(duì)象都有一組特征,稱之為屬性。不同的對(duì)象有不同的屬性。在可視化編程中,每一種對(duì)象都有一組特定的屬性。許多屬性可能為大多數(shù)對(duì)象所共有,還有一些屬性只局限于個(gè)別對(duì)象。每一個(gè)對(duì)象屬性都有一個(gè)默認(rèn)植,如果不明確地改變該值,程序就將使用它。通過修改對(duì)象的屬性能夠控制對(duì)象的外觀和操作。對(duì)象屬性的設(shè)置一般有兩種途徑: ( 1) 選定對(duì)象,然后在屬性窗口中找到相應(yīng)的屬性直接設(shè)置。這種方法的特點(diǎn)是簡單明了,每當(dāng)選擇一個(gè)屬性 時(shí),在屬性窗口的下部就顯示該屬性的一個(gè)簡短提示,缺點(diǎn)是不能設(shè)置所有所需的屬性。 ( 2) 在代碼中通過編程設(shè)置,格式為 對(duì)象名 屬性值 如 輕松輕松學(xué)用 2. 對(duì)象的事件 事件就是對(duì)象上所發(fā)生的事情。 在 ,事件是預(yù)先定義好的、能夠被對(duì)象識(shí)別的動(dòng)作,如單擊 (件、雙擊 (件、裝載 (件、鼠標(biāo)移動(dòng) (件等,不同的對(duì)象能識(shí)別不同的事件。當(dāng)事件發(fā)生時(shí), 檢測兩條信息,即發(fā)生的是哪種事件和哪個(gè)對(duì)象接受了事件。 每種對(duì)象能識(shí)別一組預(yù)先定義好的餓事件,但并非每一種事件都會(huì)產(chǎn)生結(jié)果,因?yàn)槭亲R(shí)別事件的發(fā)生。為了使對(duì)象能夠?qū)δ骋皇录龀鲰憫?yīng),就必須編寫事件過程。 事件過程是一段獨(dú)立的程序代碼,它在對(duì)象檢測到某個(gè)特定的事件時(shí)執(zhí)行。一個(gè)對(duì)象可以響應(yīng)一個(gè)或多個(gè)事件,因此可以使用一個(gè)和多個(gè)事件過程對(duì)用戶或系統(tǒng)的事件作出響應(yīng)。程序員只需編寫必須響應(yīng)的事件過程,而其他無用的事件過程則不必編寫。 3. 事件的方法 一般來說,方法就是要執(zhí)行的動(dòng)作。用戶對(duì)具體實(shí)現(xiàn)過程并不關(guān)心,關(guān)鍵是最終收 5 到的效果。 方法與事件過程類似,它可能是函數(shù),也可能是過程,它用于完成某種特定功能而不能響應(yīng)某個(gè)事件。每個(gè)方法完成某個(gè)功能,但實(shí)現(xiàn)步驟和細(xì)節(jié)用戶既看不到、也不能修改,用戶能做的工作就是按照約定直接調(diào)用它們。 方法只能在代碼中使用,其用法依賴于方法所需的參數(shù)的個(gè)數(shù)以及它是否具有返回值。當(dāng)方法不;不需要參數(shù)并且也沒有返回值時(shí),可用下面的格式調(diào)用對(duì)象方法。 對(duì)象名 如圖片框有刷新顯示方法,在事件過程代碼中調(diào)用該方法的代碼為: 、 控件 控件是預(yù)先定 義好的、程序中能夠直接使用的對(duì)象,每個(gè)控件都有大量的屬性、事件和方法可在設(shè)計(jì)時(shí)或在代碼中修改和使用。利用控件編程使程序員免除了大量重復(fù)性的工作,能夠以最快的速度和效率開發(fā)具有良好用戶界面的應(yīng)用程序。 的控件通常分為 3 種類型: ( 1) 內(nèi)部控件。默認(rèn)狀態(tài)下工具箱中顯示的控件都是內(nèi)部控件,這些控件被“封裝”在 件中,不可從工具箱中刪除。 ( 2) 件。這類控件單獨(dú)保存在 型的文件中,其中包括各種版本供的控件。 ( 3) 可插入的對(duì)象。 工具箱中的每個(gè)控件都用一個(gè)圖形按鈕來表示,主要包 括表 2出的 19 個(gè)內(nèi)部控件。 表 2B 的內(nèi)部控件 圖片框控件 用于顯示圖形文件或文本文件,也可以作為其他控件的容器 標(biāo)簽控件 創(chuàng)建一個(gè)標(biāo)簽對(duì)象,用于保存不希望用戶改動(dòng)的文本,如復(fù)選框上面或圖形下面的標(biāo)題 文本框控件 創(chuàng)建用于顯示和輸入數(shù)據(jù)的文本框?qū)ο?,用戶可以在其中輸入或更改文?框架控件 用于美化其他控件并提供分組功能 命令按鈕控件 創(chuàng)建命令按鈕對(duì)象,用于執(zhí)行命令 復(fù)選框控件 創(chuàng)建復(fù)選框?qū)ο螅试S用戶選擇開關(guān)狀態(tài),或顯示多個(gè)選項(xiàng),用戶可從中選擇多個(gè)選項(xiàng) 選項(xiàng)按鈕控件 創(chuàng)建選項(xiàng)按鈕組對(duì)象,用于顯示多個(gè)選項(xiàng),用戶只能從中選擇一個(gè)選項(xiàng) 組合框控件 創(chuàng)建組合框或下拉列表框?qū)ο?,用戶可以從列表?xiàng)中選擇一項(xiàng)或人工輸入一個(gè)值 列表框控件 創(chuàng)建列表框?qū)ο?,用于顯示供用戶選擇的列表項(xiàng)。當(dāng)列表項(xiàng)很多,不能同時(shí)顯示時(shí)列表可以滾動(dòng) 6 水平滾動(dòng)條與垂直滾動(dòng)條控件 用于提供簡便的定位。還可以模擬當(dāng)前所在的位置 計(jì)時(shí)器控件 創(chuàng)建計(jì)時(shí)器對(duì)象,以設(shè)定的間隔捕捉計(jì)時(shí)器事件。此控件運(yùn)行時(shí)不可見 驅(qū)動(dòng)器列表框控件 顯示當(dāng)前可用的驅(qū)動(dòng)器,供用戶選擇 文件列表框控件 顯示當(dāng)前路徑下的文件名列表,供用戶選擇 形狀控件 創(chuàng)建形狀對(duì)象,設(shè)計(jì)時(shí)用于畫各種類型的形狀。 線條控件 創(chuàng)建線條對(duì)象,設(shè)計(jì)時(shí)用于在窗體上畫各種類型的線條 圖像控件 創(chuàng)建圖像對(duì)象,在窗體上顯示位圖、圖標(biāo)、 圖形文件。單擊時(shí),其動(dòng)作類似于命令按鈕 數(shù)據(jù)控件 用于連接數(shù)據(jù)庫,并在窗體的其他控件中顯示數(shù)據(jù)庫信息 器控件 創(chuàng)建 器對(duì)象,用于把其他應(yīng)用的數(shù)據(jù)嵌入到 應(yīng)用程序中 三、 窗體對(duì)象 窗體也就是平時(shí)所說的窗口,它是 程中最常見的對(duì)象,也是程序設(shè)計(jì)的基礎(chǔ)。 1. 窗體的結(jié)構(gòu) 同 題欄、最大化 /復(fù)原按鈕、最小化按鈕、關(guān)閉按鈕以及邊框,如圖 2 圖 2體的結(jié)構(gòu) 7 創(chuàng)建新窗體的步驟如下: ( 1) 從“工程”菜單中選擇“添加窗體”菜單項(xiàng)。 ( 2) 缺省情況下系統(tǒng)將顯示如圖 2加窗體”對(duì)話框。 ( 3) 該對(duì)話框的“新建”選項(xiàng)卡用于創(chuàng)建一個(gè)新窗體,列表框中列出了各種新窗體的類型,其中選擇“窗體”選項(xiàng)時(shí),建立一個(gè)空白的新窗體,選擇其他選項(xiàng)時(shí)則建立一個(gè)預(yù)定義了某些功能的窗體。 ( 4) 單擊“打開”按鈕,一個(gè)新的空白窗體被加入到當(dāng)前工程中,同時(shí)會(huì)顯示在屏幕上,如圖 2 圖 2添加窗體”對(duì)話框 圖 2加新窗體 2. 窗體的屬性 8 常用的窗體屬性如表 2 表 2用的窗體屬性 屬性 用 途 定窗體的名字,同時(shí)也是磁盤上的窗體文件名,擴(kuò)展名為 定標(biāo)題欄中顯示的文本 于確定窗體的背景顏色 于決定窗體的邊框風(fēng)格 定窗體是否具有控制菜單 定窗體的標(biāo)題欄中是否具有最大化按鈕 定控制窗體 是否可移動(dòng) 過取值決定窗體是正常、最小化還是最大化狀態(tài) 第三節(jié) 視化編程的環(huán)境 一、 屬性窗口 在 成環(huán)境的默認(rèn)視圖中,屬性窗口位于工程窗口的下面。按 鍵,或單擊工具欄中“屬性窗口”按鈕,或選取“視圖”菜單中的“屬性窗口”子菜單,均可打開屬性窗口,如圖 2 圖 2性窗口 二、 工程窗口 工程窗口類似于 的資源管理器,在這個(gè)窗口中列出了當(dāng)前工程中的窗體和模塊,其結(jié)構(gòu)用樹狀的層次管理方法顯示。如圖 2示。 9 圖 2程窗口 三、 代碼窗口 “代碼窗口”也稱“代碼編輯器”,在“代碼窗口”中有“對(duì)象下拉列表框”和“代碼區(qū)”,如圖 2 圖 2碼窗口 10 第三章 符號(hào) 第一節(jié) 地圖符號(hào)及其分類 空間要素以其位置和屬性為特征。為了在地圖上表示某一空間要素,我們用地圖符號(hào)來指示該要素的位置,并用該符號(hào)與一個(gè)或一組視覺變量的組合來顯示該要素的屬性數(shù)據(jù)。比如,用紅色粗線代表州際公路,而用黑色細(xì)線代表州級(jí)公路。在此二例中,線狀符號(hào) 均表征了公路的位置,而線的寬度和色彩這兩種視覺變量與線狀符號(hào)一起,將州際公路和州級(jí)公路區(qū)分開來。 選擇合適的地圖符號(hào)和視覺變量是數(shù)據(jù)顯示主要關(guān)注的一個(gè)方面。對(duì)柵格數(shù)據(jù)而言,地圖符號(hào)的選擇已不是一個(gè)問題,因而無論被描述的空間要素是點(diǎn)、線或多邊形,地圖符號(hào)都由像元組成。然而,對(duì)矢量數(shù)據(jù)而言,常用的地圖符號(hào)像要素類型分類一樣,也分為點(diǎn)、線、面三類。從而,為矢量數(shù)據(jù)選擇地圖符號(hào)的通用法則如下:點(diǎn)狀符號(hào)適用于點(diǎn)狀要素,線狀符號(hào)適用于線狀要素,面狀符號(hào)適用于面狀要素。 對(duì)上述數(shù)據(jù) 個(gè) 目通常會(huì)用到諸如高程、氣溫和降雨量等立體或三維數(shù)據(jù),然而卻沒有相應(yīng)的立體符號(hào),只得用點(diǎn)、線和面狀符號(hào)表示這些立體數(shù)據(jù)。另一個(gè)常見的例外是用多邊形標(biāo)識(shí)位置上的點(diǎn)狀符號(hào)來顯示合計(jì)數(shù)據(jù),如縣或州的人口總數(shù)。 地圖符號(hào)系統(tǒng)中的視覺變量包括形狀、大小、紋理、圖案、色相、色值和彩度。例如,一幅地圖可用大小不同的圓圈來表示不同規(guī)模等級(jí)的城市。另一方面,圖案(符號(hào)斑紋的類型)則更適合于表征標(biāo)稱或定性數(shù)據(jù)。比如,一幅地圖可用不同的面狀圖案代表不同的土地利用類型。 現(xiàn)實(shí)世界盡管形態(tài)各異,千變?nèi)f化,但是在空間資料抽象表達(dá)時(shí),將其 分為點(diǎn)狀地物、線狀地物和面狀地物,因而表達(dá)地物的符號(hào)也相應(yīng)地有點(diǎn)狀符號(hào)、線狀符號(hào)和面狀符號(hào) 一、 點(diǎn)狀符號(hào) 點(diǎn)狀符號(hào)是不依比例尺表示的小面積地物(如油庫、水井)或點(diǎn)狀地物(如測量控制點(diǎn))等。點(diǎn)狀符號(hào)的特點(diǎn)是:圖形固定,不隨它在圖面上的位置的變化而變化;符號(hào)都有確定的定點(diǎn)位和方向;點(diǎn)狀符號(hào)圖形大多比較規(guī)則,由簡單幾何圖形構(gòu)成。 對(duì)點(diǎn)狀符號(hào)可采用直接編碼和間接編碼兩種方法。 直接編碼法是直接以每一步的走步方向的代碼構(gòu)成信息塊。例如,編寫西文字母“ B” 的信息塊,可其分解成不同方向的步數(shù) ,并按一定的規(guī)則排列,加上相應(yīng)的抬落筆編號(hào),就可構(gòu)成西文字母“ B”的信息塊。 間接編碼法是以位移網(wǎng)格代碼構(gòu)成信息塊的,繪圖時(shí)經(jīng)轉(zhuǎn)換得到走步方向和步數(shù)。它可分為格點(diǎn)編碼法和非格點(diǎn)編碼法。這里只介紹計(jì)算機(jī)地圖制圖中較適用的格點(diǎn)編碼法。格點(diǎn)編碼法是:對(duì)任意范圍內(nèi)所設(shè)的正交網(wǎng)格交點(diǎn)賦予一定內(nèi)容的數(shù)碼,然后用手工方法在該范圍內(nèi)畫符號(hào),將符號(hào)線劃通過的網(wǎng)格交點(diǎn)的數(shù)碼按一定的順序排列,就得到符號(hào)的信息塊。一般地說,網(wǎng)格越精細(xì),符號(hào)質(zhì)量越高,但信息塊數(shù)據(jù)量就越的大。網(wǎng)格的精細(xì)度取決于所繪符號(hào)的復(fù)雜程度。 用編程的方 法繪制點(diǎn)狀符號(hào)也是經(jīng)常用的方法?,F(xiàn)以圓的繪制說明其算法。 11 任何一個(gè)圓都可以用一個(gè)正多邊形逼近它,其邊數(shù)越多,圓弧就越顯光滑。然而,多邊形邊數(shù)太多,則繪圖時(shí)會(huì)因墨水筆或纖維筆滲透過多的墨水而使圓周不清晰,當(dāng)然也會(huì)浪費(fèi)時(shí)間。 因此,只要保持正多邊形與圓周之間的拱高在某一限差之內(nèi),使其多邊形看起來光滑即可。 但是,隨著計(jì)算機(jī)的飛躍發(fā)展,在 制圓僅僅需要調(diào)用 圓、弧。語法為: .x,y),說明: ( 1)( X,Y)圓、橢圓、弧的中心坐標(biāo)。 ( 2) 指定圓、橢圓、弧的半徑。 ( 3) 果被忽略,則使用 性值。 ( 5) ( 6) ( 7) 可以省略語法中的某個(gè)參數(shù),但不能省略分隔參數(shù)的逗號(hào)。 畫圓的程序代碼如下: s s X Y s s X Y 500 行結(jié)果如圖 3 3、 線狀符號(hào) 線狀符號(hào)是長度依比例尺表示而寬度不依比例尺表示的符號(hào),用于表示呈線狀(如 12 邊界線)或細(xì)條帶狀延伸的地物(如河流、道路)。線狀符號(hào)的特點(diǎn)是:都有一條有形或無形的定位線;符號(hào)可進(jìn)一步劃分為曲線、直線、虛線、并行線、沿定位線連續(xù)配置點(diǎn)符號(hào)等;符號(hào)進(jìn)一步分解為單一特 征的線狀符號(hào),即一線狀符號(hào)可由若干條具有單一特征的線狀符號(hào)組成。 線狀符號(hào)采用對(duì)重復(fù)元進(jìn)行編碼。重復(fù)元是指組成線狀符號(hào)的基本單元,對(duì)它亦可類似上述方法編碼,繪制時(shí)須按中軸線位置和走向逐點(diǎn)變換后,連續(xù)配置成完整的土堤符號(hào)。 當(dāng)符號(hào)圖形復(fù)雜時(shí),上述編碼不能適用,可直接用伴有抬落筆碼的坐標(biāo)矢量的有序 集合作為信息塊。完整的信息塊還應(yīng)包括符號(hào)色代碼等。 該方法是由繪圖子程序按符號(hào)圖形參數(shù)計(jì)算繪圖矢量并操縱繪圖筆繪制地圖符號(hào)的方法。對(duì)每一個(gè)地圖符號(hào)或同一類型的一組地圖符號(hào)編一個(gè)繪圖子程序,這些程序組成一個(gè)程序 庫。在繪圖時(shí)按程序(即符號(hào))的編號(hào)調(diào)用庫中相應(yīng)的程序,輸入適當(dāng)?shù)膮?shù),該程序?qū)⒏鶕?jù)已知數(shù)據(jù)和參數(shù)計(jì)算繪圖矢量,并產(chǎn)生驅(qū)動(dòng)繪圖機(jī)的命令,從而完成地圖符號(hào)的繪制。這種方法一般只適用于那些能用數(shù)學(xué)表達(dá)式描述的地圖符號(hào)。編程的過程是,先建立描述符號(hào)的數(shù)學(xué)模型,然后設(shè)計(jì)流程圖和編寫源程序,最后上機(jī)調(diào)試并確認(rèn)優(yōu)化后入庫。應(yīng)注意的是,盡量用一個(gè)程序能繪制多個(gè)符號(hào),如繪圓和橢圓就可用一個(gè)程序完成。程序功能的大小完全取決于對(duì)要素的精心分類和選擇適當(dāng)?shù)膮?shù)。 三、 面狀符號(hào) 面狀符號(hào)是指在二維平面上能按一定比例尺表示 地物分布范圍的符號(hào),用于表示面狀分布物體或地理現(xiàn)象。面狀符號(hào)的特點(diǎn)是:有一條封閉的輪廓線,多數(shù)面符號(hào)是在輪廓線范圍內(nèi)配置不同的點(diǎn)狀符號(hào)、繪陰影線或涂色。這些符號(hào)的共同點(diǎn)就是在面狀符號(hào)范圍線內(nèi)填繪不同方向、不同間隔、不同粗細(xì)的暈線,或填繪呈一定規(guī)律分布的個(gè)體符號(hào),花紋或顏色來反映這些現(xiàn)象的質(zhì)量特征或數(shù)量上的差異。 實(shí)際上,點(diǎn)、線、面符號(hào)不是孤立的,他們之間存在一定的聯(lián)系。線符號(hào)中往往包含點(diǎn)符號(hào),面符號(hào)中也可能包含線、點(diǎn)符號(hào)。 在下面的一章節(jié)中,我們主要討論有關(guān)區(qū)域填充的問題,即面狀符號(hào)的填 充。 13 第四章 區(qū)域填充 區(qū)域填充是指在一個(gè)有界區(qū)域內(nèi)填充某種顏色或圖案,如機(jī)械制圖中的 45 度剖面線。區(qū)域填充分為兩類:一類叫多邊形填充,一類叫種子填充。兩者的前提條件不同,多邊形的填充需要提供多邊形各頂點(diǎn)的坐標(biāo)及填充色或圖案;而種子填充則要求給出邊界顏色特征及區(qū)域內(nèi)的一個(gè)點(diǎn)(即種子點(diǎn))的坐標(biāo)。 第一節(jié) 多邊形填充 一種常用的填充方法是按掃描線順序,計(jì)算掃描線與多邊形的相交區(qū)間,再用要求的顏色或圖案顯示這些區(qū)間的像素,從而完成多邊形的填充。 多邊形填充首先需 要求出掃描線與邊界的交點(diǎn),利用邊的相關(guān)性可以簡單有效地解決這個(gè)問題。當(dāng)一條掃描線與多邊形的某一條邊線有交點(diǎn)時(shí),其相鄰掃描線一般也與該邊線相交,而且掃描線與該邊線的交點(diǎn),很容易從前一條掃描線與該邊的交點(diǎn)求出。 利用邊的這種相關(guān)性,不必算出邊線與各條掃描線的全部交點(diǎn),只需以邊線為單位,對(duì)每條邊建立一個(gè)邊記錄,其內(nèi)容包括:該邊 Y 的最大值,該邊底端的 一條掃描線到下一條掃描線間的 及指示下一個(gè)邊記錄地址的指針。 下面用編程( 方法實(shí)現(xiàn)對(duì)多邊形(五邊形)進(jìn)行符號(hào)的填充(填充圓圈)。 第二節(jié) 對(duì)任意多邊形填充符號(hào) 第一步:畫一任意多邊形,在這用五邊形為例。在 立應(yīng)用程序用戶界面,選擇“新建”工程,雙擊窗體的空白部分,進(jìn)入到代碼編輯窗口,單擊“對(duì)象”下

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論