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