



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、利用OpenGL實(shí)現(xiàn)內(nèi)插算法可視化 摘 要 OpenGL是一種交互式計(jì)算機(jī)圖形系統(tǒng),具有繪制三維圖形的功能,能高效地編寫(xiě)出可操縱圖形硬件的程序,支持三維可視化的實(shí)現(xiàn)。本文以O(shè)penGL為基礎(chǔ),對(duì)可視化技術(shù)進(jìn)行研究,重點(diǎn)討論了內(nèi)插算法,結(jié)合OpenGL中視點(diǎn)的定義,通過(guò)OpenGL的函數(shù)來(lái)實(shí)現(xiàn)。 關(guān)鍵詞 OpenGL 可視化 內(nèi)插算法1 引言 為了便于對(duì)算法
2、實(shí)現(xiàn)進(jìn)行測(cè)試和效果分析,我們依據(jù)圖1進(jìn)行離散點(diǎn)采樣。在圖1中,地形面積為 ,其等高線分布如圖所示,A點(diǎn)和B點(diǎn)為兩座山的頂峰,其中A點(diǎn)高程值為3.6,B點(diǎn)高程值為2.3。我們將采樣得到的離散點(diǎn)按照一定的規(guī)則存放在*.dem的文件中,通過(guò)讀取文件中的數(shù)據(jù)來(lái)獲取離散點(diǎn)的高程值。我們通過(guò)采樣10或20個(gè)點(diǎn)生成 的DEM格網(wǎng)模型。圖1 測(cè)試地形等高線圖2 內(nèi)插算法的可視化的實(shí)現(xiàn)2.1 讀取文件中離散點(diǎn)數(shù)據(jù) 離散點(diǎn)數(shù)據(jù)包括平面位置和高程兩種信息,可以直接在野外通過(guò)全站儀或者GPS、激光測(cè)距儀等進(jìn)行測(cè)量,也可以間接地從航空影像或者遙感圖象以及既有地形圖上得到。
3、具體采用何種數(shù)據(jù)源和相應(yīng)的測(cè)量技術(shù),一方面取決于這些源數(shù)據(jù)的可獲得性,另一方面也取決于DEM的分辨率、精度要求、數(shù)據(jù)量大小和技術(shù)要求等。 對(duì)于離散點(diǎn)的數(shù)據(jù),往往是很大的,我們只有按照一定數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)在*.dem文件中,才能便于管理和修改。在程序中通過(guò)讀取文件,可以得到任意一個(gè)文件中的地形信息。為了測(cè)試的需要,依據(jù)圖1中的等高線我們可以采集到一些特征點(diǎn)的三維信息。例如,我們采集10個(gè)點(diǎn)的信息,將其存入文件中,其結(jié)構(gòu)如下所示:10 0.0 0.0 0.0 10.0 10.0 10.0 10.0 0.0
4、0.0 3.6 3.0 7.1 3.6 7.1 3.0 2.3 5.5 5.5 1.4 5.7 8.0 1.0 8.0 8.0 0.5 9.0 2.0 1.3 6.0 1.2 1.0 5.0 4.0 1.0 1.0 7.2 2.0 2.0
5、2.0 0.3 在實(shí)例中每個(gè)數(shù)據(jù)按照5個(gè)字符來(lái)存儲(chǔ)。第一個(gè)數(shù)據(jù)為采樣離散點(diǎn)的總數(shù),第二到第九個(gè)數(shù)據(jù)分別為所選地形左下、左上、右上、右下點(diǎn)的平面X和Y的坐標(biāo),第十和第十一個(gè)數(shù)據(jù)為地形的最小高程值和最大高程值,余下的數(shù)據(jù)每三個(gè)為采樣離散點(diǎn)的三維坐標(biāo)X、Y和Z,共有十個(gè)。 在LoadFileData類(lèi)中,需要先定義public int DataNum; /離散點(diǎn)的總數(shù)public double, DataPoint=new double 50,3; /離散數(shù)據(jù)點(diǎn)的三維坐標(biāo)int readDemPosition; /
6、 讀取位置string DemFileContent; /DEM文件內(nèi)容public struct Pointpublic double x; public double y;public struct DEMStructpublic Point LeftBottom;public Point LeftTop; public Point RightTop; public Point RightBottom;
7、60; public double MinElevation; public double MaxElevation; public DEMStruct DemDataStruct;/存儲(chǔ)*.dem文件中前十一個(gè)數(shù)據(jù) 同時(shí)在主程序中,還需要調(diào)用如下兩個(gè)讀取int型和double型的函數(shù):private int readInt() string tmps ; tmp
8、s = DemFileContent.Substring(readDemPosition,5); readDemPosition += 5; return ( Convert.ToInt32(tmps); private double readDouble() string tmps; tmps = DemFileContent.Substring(readDemPositio
9、n,5); readDemPosition += 5; return (Convert.ToDouble(tmps); 通過(guò)讀取文件中的數(shù)據(jù),我們可以很容易的得到地圖的四邊、地圖中心點(diǎn)坐標(biāo)和最大與最小高層差,以便在繪制地形時(shí)確定屏幕的顯示位置和鼠標(biāo)控制的縮放和移動(dòng)比例。2.2 利用OpenGL實(shí)現(xiàn)算法的可視化 Open GL是Open Graphics Library 的縮寫(xiě),它是SGI公司開(kāi)發(fā)的一套高性能圖形處理系統(tǒng),是圖形硬件的軟件接
10、口,意為開(kāi)放的圖形庫(kù)。通過(guò)OpenGL程序員可以創(chuàng)建交互式的應(yīng)用程序,實(shí)現(xiàn)具有逼真效果的三維圖形圖像。由于其開(kāi)放性和高度的可重用性,目前已成為業(yè)界標(biāo)準(zhǔn)。 OpenGL被設(shè)計(jì)成獨(dú)立于硬件,獨(dú)立于窗口系統(tǒng)的,在運(yùn)行各種操作系統(tǒng)的各種計(jì)算機(jī)上都可用,并能在網(wǎng)絡(luò)環(huán)境下以客戶/服務(wù)器模式工作,是專(zhuān)業(yè)圖形處理、科學(xué)計(jì)算等高端應(yīng)用領(lǐng)域的標(biāo)準(zhǔn)圖形庫(kù)。 為了便于我們后期的LOD地形簡(jiǎn)化,我們一般要將地形繪制成三角格網(wǎng)的形式。在繪制三角形時(shí),由于地形不可能都是規(guī)則的長(zhǎng)方形或正方形,考慮到一般地
11、形的多樣性和復(fù)雜性,不能夠?qū)Ⅻc(diǎn)簡(jiǎn)單的連線。根據(jù)三角形的四種形式,每個(gè)構(gòu)成三角形的點(diǎn)都先按照四邊形的方式進(jìn)行劃分成四個(gè)點(diǎn)(如圖2)。圖2 三角形四種情況下點(diǎn)的的劃分4 在圖中,三角形中必有一個(gè)點(diǎn)被兩個(gè)編號(hào)所代表,然后按照1-2-4-1-3-4的順序進(jìn)行連接,必然能繪制出四種情況中的任何一種三角形。通過(guò)上述操作,可以實(shí)現(xiàn)程序能運(yùn)用到所有地形的顯示。 程序代碼private void DrawTriangle(Point3D Point1, Point3D Point2, Point3D Point3, Point3D Point4 )
12、160; GL.glBegin(GL.GL_TRIANGLES);/開(kāi)始繪三角形 GL.glVertex3d(Point1.x, Point1.y, Point1.z);/從1起筆 GL.glVertex3d(Point2.x, Point2.y, Point2.z);/畫(huà)到2 GL.glVertex3d(Point4.x, Point4.y, Point4.z); /畫(huà)到4 GL.glVertex3d(Point1.x, Point1.y, Point1.z)
13、; /畫(huà)到1 GL.glVertex3d(Point3.x, Point3.y, Point3.z); /畫(huà)到3 GL.glVertex3d(Point4.x, Point4.y, Point4.z); /畫(huà)到4 GL.glEnd();/完成一個(gè)三角形的繪制 通過(guò)上述操作,可以將圖2的點(diǎn)視圖轉(zhuǎn)化為三角形格網(wǎng)試圖(如圖3)。(a)加權(quán)平均內(nèi)插數(shù)學(xué)模型(b)多面函數(shù)內(nèi)插數(shù)學(xué)模型(c)最小二乘內(nèi)插數(shù)學(xué)模型圖3 利用搜索圓實(shí)現(xiàn)地形的三角形格網(wǎng)視圖3 結(jié)論 在現(xiàn)實(shí)中,我們需要生成的地形往往是很龐大,很復(fù)雜的,因此不能夠僅利用某一種算法和某一種搜索方式生成全部的地形。對(duì)于大范圍的復(fù)雜地形,就必須先對(duì)地形按起伏程度進(jìn)行區(qū)域分塊,對(duì)不同的區(qū)域選擇合適的算法和搜索方式。參考文獻(xiàn)1 Donald Hearn ,M.Pauline Baker .Computer Graphics M.電子工業(yè)出版社,1998Edwward Angel.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中職新能源課題申報(bào)書(shū)
- 廣東省課題的申報(bào)書(shū)
- 博士生人文課題申報(bào)書(shū)
- 中藥農(nóng)業(yè)課題申報(bào)書(shū)
- 甘肅黨建課題申報(bào)書(shū)范例
- 腎內(nèi)科課題申報(bào)書(shū)
- 協(xié)同育人課題申報(bào)書(shū)參考
- 文學(xué) 課題申報(bào)書(shū)
- 人工綠化合同范本
- 變更經(jīng)營(yíng)范圍合同范例
- 《主人翁精神》課件
- 欽針治療惡心嘔吐
- 第六章質(zhì)量和密度-基礎(chǔ)練(原卷版)
- 《稅收負(fù)擔(dān)對(duì)我國(guó)制造業(yè)資本金融化的影響研究》
- 2024年四川省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 中學(xué)美術(shù)《剪紙藝術(shù)》完整課件
- 現(xiàn)代家政導(dǎo)論-課件 5.1.3家庭管家
- 適用的法律法規(guī)和其他要求的符合性評(píng)價(jià)
- 中國(guó)古典園林史復(fù)習(xí)
- 東湖高新區(qū)調(diào)研報(bào)告
- 腎包膜下血腫護(hù)理
評(píng)論
0/150
提交評(píng)論