GIS地图界面和计算机图形学填充算法
一 GIS地圖界面
GIS程序最常見(jiàn)的界面就是,不同區(qū)域被邊界隔開(kāi),填充為不同的顏色;
如下三個(gè);是超圖iServer自帶;
京津地區(qū)土地利用現(xiàn)狀,京津地區(qū)人口分布,京津地區(qū)地貌分布;用于學(xué)習(xí)是很好資源;
如果對(duì)計(jì)算機(jī)圖形學(xué)了解的話,你就知道這種不同區(qū)域填充為不同顏色,底層算法是用計(jì)算機(jī)圖形學(xué)填充算法實(shí)現(xiàn)的;
下面來(lái)看一下填充算法的基本概念;
二 計(jì)算機(jī)圖形學(xué)區(qū)域填充算法
區(qū)域填充概念
? ? 區(qū)域:指已經(jīng)表示成點(diǎn)陣形式的填充圖形,是象素的集合。
? ? 區(qū)域填充:將區(qū)域內(nèi)的一點(diǎn)(常稱【種子點(diǎn)】)賦予給定顏色,然后將這種顏色擴(kuò)展到整個(gè)區(qū)域內(nèi)的過(guò)程。
? ? 區(qū)域填充算法要求區(qū)域是連通的,因?yàn)橹挥性谶B通區(qū)域中,才可能將種子點(diǎn)的顏色擴(kuò)展到區(qū)域內(nèi)的其它點(diǎn)。
區(qū)域有兩種表示形式
? ? 1)內(nèi)點(diǎn)表示:枚舉出區(qū)域內(nèi)部的所有象素,內(nèi)部所有象素著同一個(gè)顏色,邊界像素著與內(nèi)部象素不同的顏色。
? ? 2)邊界表示:枚舉出區(qū)域外部的所有象素,邊界上的所有象素著同一個(gè)顏色,內(nèi)部像素著與邊界象素不同的顏色。
區(qū)域連通
? ? 1)四向連通區(qū)域:從區(qū)域上一點(diǎn)出發(fā)可通過(guò)【上、下、左、右】四個(gè)方向移動(dòng)的組合,在不越出區(qū)域的前提下,到達(dá)區(qū)域內(nèi)的任意象素。
? ? 2)八向連通區(qū)域:從區(qū)域上一點(diǎn)出發(fā)可通過(guò)【上、下、左、右、左上、右上、左下、右下】八個(gè)方向移動(dòng)的組合,在不越出區(qū)域的前提下,到達(dá)區(qū)域內(nèi)的任意象素。
簡(jiǎn)單種子填充算法基本思想
? ? 給定區(qū)域G一種子點(diǎn)(x, y),首先判斷該點(diǎn)是否是區(qū)域內(nèi)的一點(diǎn),如果是,則將該點(diǎn)填充為新的顏色,然后將該點(diǎn)周圍的四個(gè)點(diǎn)(四連通)或八個(gè)點(diǎn)(八連通)作為新的種子點(diǎn)進(jìn)行同樣的處理,通過(guò)這種擴(kuò)散完成對(duì)整個(gè)區(qū)域的填充。
看一下圖形學(xué)填充算法VC++版的效果;
這個(gè)是孔令德老師教材VC++源碼的運(yùn)行效果;網(wǎng)上花積分下的;有沒(méi)有盜孔老師的版不知道;
就說(shuō)如果了解一些計(jì)算機(jī)圖形學(xué)內(nèi)容,對(duì)于GIS開(kāi)發(fā)也是很有幫助;
一般做GIS開(kāi)發(fā)是你傳邊界線像素寬度、邊界線顏色、內(nèi)部要填充的顏色值給GIS系統(tǒng),它會(huì)幫你畫好;如果能了解一些底層算法也是很有幫助的;
?
總結(jié)
以上是生活随笔為你收集整理的GIS地图界面和计算机图形学填充算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 超图更新试用许可
- 下一篇: hyper-V 检查点