大學(xué)本科畢業(yè)論文(設(shè)計(jì))開(kāi)題報(bào)告
學(xué)院:機(jī)電及自動(dòng)化學(xué)院 專業(yè)班級(jí):08機(jī)電2班
課題名稱 STL模型處理技術(shù)研究及軟件開(kāi)發(fā)
1、本課題的研究目的和意義:
STL文件格式是由3D System公司開(kāi)發(fā)的,已被工業(yè)界認(rèn)為是目前快速成型領(lǐng)域的標(biāo)準(zhǔn)零件描述文件格式。STL文件對(duì)三維實(shí)體描述的解釋具有唯一性,STL格式文件被廣泛的應(yīng)用于科學(xué)計(jì)算可視化,計(jì)算機(jī)動(dòng)畫(huà),虛擬現(xiàn)實(shí)等技術(shù)之中。在工作研究中時(shí)常需要對(duì)STL文件的實(shí)體模型進(jìn)行觀察和結(jié)構(gòu)分析,這就需要一種能方便快捷地顯示STL文件并能對(duì)模型進(jìn)行交互操作的工具。
為此本文借助OpenGL圖形庫(kù)的渲染、圖形變換顯示功能,使用Visual Studio 2008開(kāi)發(fā)了一種STL格式實(shí)體的真實(shí)感顯示與交互變換工具。
2、 文獻(xiàn)綜述(國(guó)內(nèi)外研究情況及其發(fā)展):
(1) STL模型的數(shù)據(jù)結(jié)構(gòu)
耿鐵等[1]采用兩個(gè)結(jié)構(gòu)體變量分別定義儲(chǔ)存三角形面片的頂點(diǎn)數(shù)據(jù)和法向量,三個(gè)頂點(diǎn)的坐標(biāo)及法向量的三個(gè)坐
……(新文秘網(wǎng)http://m.120pk.cn省略729字,正式會(huì)員可完整閱讀)……
getline函數(shù)從ifstream對(duì)象綁定的STL文件中讀取數(shù)據(jù)。
張貞貞等[5]通過(guò)比較法消除冗余數(shù)據(jù),去除冗余點(diǎn)的同時(shí)也建立了點(diǎn)表,并由一個(gè)結(jié)構(gòu)體形成的面表記錄了每個(gè)面片的向量以及它的3個(gè)頂點(diǎn)的信息,使得面表和點(diǎn)表聯(lián)系在一起。使用fscanf函數(shù)實(shí)現(xiàn)STL文件的快速讀取。
王公強(qiáng)等[6]用CFile類的Read函數(shù)將文件讀取到內(nèi)存中,定義了兩種需要處理的類數(shù)據(jù)類型。通過(guò)對(duì)STL文件讀取,將有用的三角面法矢量及頂點(diǎn)坐標(biāo)存儲(chǔ)到一個(gè)動(dòng)態(tài)數(shù)組中。
衛(wèi)煒等[7]采用內(nèi)存映射手段,基于哈希表結(jié)構(gòu)的冗余頂點(diǎn)刪除實(shí)現(xiàn)了對(duì)海量STL文件快速讀取,用靜態(tài)數(shù)組形式來(lái)儲(chǔ)存三角形網(wǎng)格模型的幾何信息。由于動(dòng)態(tài)數(shù)組封閉了相應(yīng)有成員函數(shù),但每次操作均需要重新分配內(nèi)存空間和進(jìn)行元素拷貝。在儲(chǔ)存面片數(shù)量較大時(shí),時(shí)間開(kāi)銷(xiāo)很大。而靜態(tài)數(shù)組結(jié)構(gòu)在對(duì)數(shù)據(jù)的儲(chǔ)存時(shí),時(shí)間開(kāi)銷(xiāo)最小,缺點(diǎn)是需要預(yù)先確定數(shù)據(jù)元素的最大個(gè)數(shù),申請(qǐng)足夠的分配空間。
(3) 三維CAD模型交互顯示與變換
王公強(qiáng)等[6]介紹了兩種在OpenGL中實(shí)現(xiàn)物體旋轉(zhuǎn)的方法:一是通過(guò)OpenGL提供的對(duì)模型進(jìn)行旋轉(zhuǎn)的函數(shù)glRotate函數(shù)來(lái)實(shí)現(xiàn),二是通過(guò)修改取景變換函數(shù)glLookAt的函數(shù)來(lái)實(shí)現(xiàn)。在OpenGL中實(shí)現(xiàn)物體的縮放也有兩種方法:一是通過(guò)改變glOrtho函數(shù)的參數(shù),改變物體所在的可視空間的大小來(lái)實(shí)現(xiàn),當(dāng)可視化空間變大的時(shí)候,物體的顯示就會(huì)相對(duì)縮小,相反,就會(huì)相對(duì)擴(kuò)大。二是通過(guò)OpenGL提供的glScale函數(shù)來(lái)實(shí)現(xiàn)物體模型的縮放。
衛(wèi)煒等[7]采用OpenGL顯示列表,它是由一組預(yù)先存儲(chǔ)起來(lái)的留待以后調(diào)用的OpenGL函數(shù)語(yǔ)句組成,當(dāng)調(diào)用該顯示列表時(shí)就依次執(zhí)行表所列出的語(yǔ)句,該方法能優(yōu)化程序運(yùn)行性能,但因?yàn)閯?chuàng)建或調(diào)用顯示列表程序本身也有一些開(kāi)銷(xiāo),若一個(gè)顯示列表太小則無(wú)法顯示出列表的優(yōu)越性,所以該方法只適用于擁有超過(guò)10萬(wàn)個(gè)三角面片時(shí)的海量讀取。對(duì)海量STL文件進(jìn)行旋轉(zhuǎn)、縮放等操作這里采用:當(dāng)按下鼠標(biāo)進(jìn)行文件旋轉(zhuǎn)、縮放等操作時(shí),顯示的三角面片個(gè)數(shù)僅為文件總的三角面片個(gè)數(shù)的1%-10%左右,這樣大幅度減小了需要顯示的三角形面片數(shù),但又能足夠顯示出模型的輪廓,從而極大降低旋轉(zhuǎn)、縮放的操作遲滯感,而且一旦松開(kāi)鼠標(biāo),就會(huì)自動(dòng)調(diào)用已經(jīng)存在的多個(gè)列表進(jìn)行顯示,實(shí)現(xiàn)圖形的快速刷新。
(4) 發(fā)展方向
隨著各種算法的不斷改進(jìn),基于STL模型的軟件開(kāi)發(fā)將朝著STL文件數(shù)據(jù)的快速讀取,并具合理
有效地去除冗余頂點(diǎn)數(shù)據(jù)能力,快速建立合適的STL文件拓?fù)湫畔�。�?shí)現(xiàn)STL模型在OpenGL環(huán)境中的快速顯示與流暢的交互性操作。
3、 本課題的主要研究?jī)?nèi)容(提綱)和成果形式:
內(nèi)容:
(1) 分析三維離散CAD模型(STL模型),設(shè)計(jì)相應(yīng)的數(shù)據(jù)結(jié)構(gòu);
(2) 研究STL模型的輸入輸出算法、真實(shí)感顯示知識(shí),并編程實(shí)現(xiàn);
(3) 研究三維CAD模型交互顯示、模型變換理論并實(shí)現(xiàn)相關(guān)算法;
成果形式:
(1) 具有合理的STL模型的數(shù)據(jù)結(jié)構(gòu)。
(2) 能快速讀入STL模型,并基于OpenGL顯示。
(3) 可以實(shí)現(xiàn)CAD模型的交互顯示。
4、擬解決的關(guān)鍵問(wèn)題:
(1) CAD幾何模型可以具體到點(diǎn)、線、面、實(shí)體和部件等幾何對(duì)象。這些幾何對(duì)象之間又存在各種關(guān)系,如層次關(guān)系、拓?fù)潢P(guān)系等。設(shè)計(jì)和開(kāi)發(fā)一系列合理的類來(lái)描述、管理和操作這些幾何對(duì)象和它們之間的關(guān)系。
(2) 設(shè)計(jì)合理STL文件的快速讀取和輸出算法。
(3) 在OpenGL中對(duì)光源特性和材質(zhì)等進(jìn)行設(shè)置實(shí)現(xiàn)三維模型的真實(shí)感顯示效果。
(4) 由模型最大包容盒信息算法并結(jié)合模型變換和視圖變換,設(shè)計(jì)合理有效的平移、旋轉(zhuǎn)、縮放等模型變換函數(shù),實(shí)現(xiàn)CAD模型的交互顯示。
5、研究思路、方法和步驟:
(1) STL模型的數(shù)據(jù)結(jié)構(gòu) ……(未完,全文共4054字,當(dāng)前僅顯示2048字,請(qǐng)閱讀下面提示信息。
收藏《論文開(kāi)題:STL模型處理技術(shù)研究及軟件開(kāi)發(fā)》)