簡單空間疊置和緩沖區(qū)分析實驗軟件開發(fā)實習(xí)報告_第1頁
簡單空間疊置和緩沖區(qū)分析實驗軟件開發(fā)實習(xí)報告_第2頁
簡單空間疊置和緩沖區(qū)分析實驗軟件開發(fā)實習(xí)報告_第3頁
簡單空間疊置和緩沖區(qū)分析實驗軟件開發(fā)實習(xí)報告_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、簡單空間疊置和緩沖區(qū)分析實驗軟件開發(fā)實習(xí)報告實驗?zāi)康暮鸵罄肰C編程實現(xiàn)一個矢量數(shù)據(jù)空間分析的實驗軟件,實現(xiàn)緩沖區(qū)分析(點緩沖、線緩 沖、面緩沖)和疊置分析(疊置交、疊置并、疊置補)。通過本次實習(xí),加深對于空間疊置類型和算法以及緩沖區(qū)生成算法的理解,提高動手編程能力,并初步了解 GIS底層開發(fā)的初步知識。實驗環(huán)境本次實習(xí)我使用微軟公司的Visual Studio 2010作為開發(fā)環(huán)境,使用VC+乍為開發(fā)語言,基于MFC框架和Ribbon界面開發(fā)了該實驗軟件,并在 Windows7 SP1系統(tǒng)上進(jìn)行運行和測 試。如果沒有安裝 Visual Studio 2010,需要首先安裝程序目錄下的下面的

2、vcredist_x86.exe,該程序是VS2010的可在發(fā)行組件包,是本實驗程序的運行環(huán)境必備組件。實驗步驟軟件框架搭建使用VS2010創(chuàng)建新的項目,選擇項目類型為MFC應(yīng)用程序,在“樣式類型”選項中選擇Ofice ,使應(yīng)用程序具有 Ribbon風(fēng)格外觀?;緢D形繪制使用MFC提供的GDI函數(shù)繪制基本圖形,包括點,線,圓,多邊形的框架繪制和填充。 在程序中具體實現(xiàn)方法為在視圖類中定義基本圖形的列表,包括點、直線、多邊形的列表, 使用vector類型存儲,然后在OnDraw()函數(shù)中依次繪制出所有的圖形即完成基本圖形繪制。緩沖區(qū)生成對于點緩沖區(qū),讀取用戶輸入的緩沖區(qū)半徑后,繪制出以點為中心,

3、以緩沖區(qū)半徑為半徑的圓即完成點緩沖區(qū)的生成。對于線緩沖區(qū),以每條線段的長為長,以緩沖區(qū)半徑的兩倍為寬,繪制一個矩形,在每一頂點繪制一個以緩沖區(qū)半徑為半徑的圓,即完成先緩沖區(qū)的生成。對于多邊形緩沖區(qū),將其視為閉合的線緩沖區(qū),按照先緩沖區(qū)的生成方法產(chǎn)生。疊置分析對于點面疊置,主要的要算每一個點是否在多邊形內(nèi),我才用的是從該點向左做一條射線,然后計算該射線與多邊形的交點的個數(shù),如果為奇數(shù),那么該點在多邊形內(nèi),否則該點 在多邊形外。并且將該函數(shù)獨立出來,方便其他函數(shù)調(diào)用。對于線面疊置,則是計算折線的每一條線段和多邊形的交點,然后將使用這些交點將該線段分割為n個子線段,對于每一個子線段可以確定,該線段要

4、么全部在多邊形外,要么全部在多邊形內(nèi),這樣只需要判斷該線段的中點即可以知道該線段是否在多邊形內(nèi),對于在多 邊形內(nèi)的線段,使用粗線段渲染出來。CRgn類來求對于面面疊置,由于算法過于復(fù)雜,我能力不夠,沒有實現(xiàn)出來,故使用 兩個多邊形的交、并、補,并且使用紅色區(qū)域渲染出來。實習(xí)結(jié)果功能菜單欄,如下圖所示,繪制點一畫點緩沖區(qū)半徑7的丐山區(qū)生成緩沖區(qū)錠?在篆中區(qū)畫備邊形 37 的一 固罷:口區(qū)點面疊置疊置并注面疊置苣置補疊疊分折疊置分析功能面板圖1功能菜單欄清空屏幕在“視圖”面板中的“清空屏幕”按鈕能夠清空所有的已繪制內(nèi)容,如果感覺屏幕內(nèi)容 過多,可以使用該按鈕清空屏幕。點緩沖區(qū)生成首先點擊“點緩沖區(qū)

5、面板”的“畫點”按鈕,此時鼠標(biāo)進(jìn)入畫點狀態(tài),可以在主視圖區(qū) 域點擊繪制點要素(如圖 2左),然后在半徑的輸入框中輸入緩沖區(qū)半徑,然后點擊“點緩 沖區(qū)面板”的“生成”按鈕,即可生成點緩沖區(qū)(如圖 2右)。* * * * * . * 圖2點緩沖區(qū)線緩沖區(qū)生成首先點擊“線緩沖區(qū)面板”的“畫線”按鈕,此時鼠標(biāo)進(jìn)入畫線狀態(tài),可以在主視圖區(qū) 域點擊繪制線要素(如圖 3左),注意由于本程序主要目的是實現(xiàn)相關(guān)功能,因此為了簡便 只能夠繪制一條直線。然后在半徑的輸入框中輸入緩沖區(qū)半徑,然后點擊“線緩沖區(qū)面板” 的“生成”按鈕,即可生成線緩沖區(qū)(如圖3右)。圖3線緩沖區(qū)面緩沖區(qū)生成首先點擊“面緩沖區(qū)面板”的“畫多

6、邊形”按鈕,此時該按鈕會變?yōu)椤伴]合”按鈕,此 時鼠標(biāo)進(jìn)入畫多邊形狀態(tài),可以在主視圖區(qū)域點擊繪制多邊形要素,在完成繪制有點擊“閉合”按鈕,閉合多邊形,完成繪制(如圖4左),注意由于本程序主要目的是實現(xiàn)相關(guān)功能, 因此為了簡便只能夠繪制一個多邊形。然后在半徑的輸入框中輸入緩沖區(qū)半徑,然后點擊“線緩沖區(qū)面板”的“生成”按鈕,即可生成多邊形緩沖區(qū)(如圖 4右)。圖4多邊形緩沖區(qū)點面疊置分析本程序的點面疊置的要素是基于前面繪制的點和多變形,因此請根據(jù)4.2和4.4繪制點和面(如圖5左),然后點擊“疊置分析”面板中的“點面疊置”按鈕,在多邊形內(nèi)的點會圖5點面疊置線面疊置分析本程序的線面疊置的要素是基于前面繪制的線和多變形,因此請根據(jù) 4.3和4.4繪制點 和面(如圖6左),然后點擊“疊置分析”面板中的“線面疊置”按鈕,在多邊形內(nèi)的線段 部分會被高亮繪制出來(如圖 6右)。圖6線面疊置面面疊置分析首先使用繪制多邊形功能繪制多邊形A,然后點擊“疊置交”、“疊置并”、“疊置補”按鈕,可以繪制多邊形 B,繪制完成后點擊完成, 既可以得到相應(yīng)的交、 并、補集。(如圖7)。實習(xí)總結(jié)通

溫馨提示

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

最新文檔

評論

0/150

提交評論