論文-空間交互式3D建模方法研究_第1頁(yè)
論文-空間交互式3D建模方法研究_第2頁(yè)
論文-空間交互式3D建模方法研究_第3頁(yè)
論文-空間交互式3D建模方法研究_第4頁(yè)
論文-空間交互式3D建模方法研究_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGEPAGE15空間交互式3D建模方法研究學(xué)生姓名:何依征,康顥嚴(yán),王家懿指導(dǎo)教師:龔鵬所在學(xué)校:東北育才學(xué)校 摘要:現(xiàn)行的三維作圖系統(tǒng)開發(fā)大多基于二維平面數(shù)據(jù)進(jìn)行處理和運(yùn)算,而且有向更加精確化,數(shù)學(xué)化的方向發(fā)展的趨勢(shì)。但這未必是三維作圖最佳的發(fā)展方向。中國(guó)古代許多民間藝人都是出色的三維建模者,盡管沒(méi)有精確的空間定位,他們?nèi)阅軇?chuàng)作出美妙的三維實(shí)體。這啟發(fā)我們開發(fā)一套使用戶能夠憑對(duì)空間的直觀感知直接在計(jì)算機(jī)中“捏”出他們?cè)O(shè)想三維模型的三維建模軟件,使得三維作圖變得簡(jiǎn)單而真實(shí)。在這一項(xiàng)目中為了達(dá)到直觀作圖的目的,我們自行設(shè)計(jì)了全新的人機(jī)交互模式即空間交互,用戶可以通過(guò)對(duì)硬件進(jìn)行擠壓,拉伸,旋轉(zhuǎn)等操作在計(jì)算機(jī)中“捏”出相應(yīng)的三維圖像,增強(qiáng)了三維作圖的真實(shí)感,也使得三維作圖更加凸顯用戶對(duì)空間的理解與感知,并且節(jié)約工業(yè)建模、動(dòng)畫制作等的工作時(shí)間和強(qiáng)度,降低開發(fā)成本。我們開發(fā)的三維作圖系統(tǒng)的人機(jī)交互的數(shù)據(jù)生成是由數(shù)個(gè)位置不同的按鍵模擬點(diǎn)的位移,兩個(gè)精密電位器測(cè)量高度變化和角度變化完成的。我們使用兩個(gè)STC12C5410AD單片機(jī)采集數(shù)據(jù)并進(jìn)行A/D轉(zhuǎn)換,用一個(gè)STC89C52單片機(jī)整合數(shù)據(jù)并發(fā)給計(jì)算機(jī)。在計(jì)算機(jī)端我們用BorlandC++Builder6.0編寫了接口程序,作圖算法程序以及調(diào)用OpenGL的繪圖程序。盡管程序的內(nèi)部實(shí)現(xiàn)是基于對(duì)點(diǎn)空間位置進(jìn)行運(yùn)算,但整個(gè)程序?qū)τ脩粽故境龅氖且粋€(gè)基于用戶直覺(jué),可以自由發(fā)揮的三維作圖平臺(tái)。關(guān)鍵詞:三維作圖,空間交互,硬件設(shè)計(jì),軟件開發(fā)研究背景與課題確定現(xiàn)在三維作圖已經(jīng)十分普及,三維軟件的作圖能力也進(jìn)一步增強(qiáng)。但是,在使用CAD軟件作圖過(guò)程中,我們發(fā)現(xiàn)到用鼠標(biāo)和鍵盤來(lái)進(jìn)行作圖存在不便之處,其最大缺陷是鼠標(biāo)與鍵盤是基于二維平面進(jìn)行工作的計(jì)算機(jī)硬件,使用它們進(jìn)行三維作圖時(shí),操作者缺乏對(duì)三維空間的直觀感受所以只能依靠對(duì)數(shù)據(jù)的精確控制來(lái)提升作圖質(zhì)量?,F(xiàn)行的三維作圖軟件大多都采用這種作圖形式,并且有向精確化方向發(fā)展的趨勢(shì),開發(fā)人員越來(lái)越青睞能夠十分精準(zhǔn)定位、修改的三維作圖軟件?,F(xiàn)行三維作圖軟件的另一弊端是它們需要開發(fā)人員具備一系列計(jì)算機(jī)知識(shí),因?yàn)榛诙S和數(shù)據(jù)的三維作圖需要建模人員依照計(jì)算機(jī)的處理模式進(jìn)行操作。這使得許多有很強(qiáng)空間想象力的人因?yàn)樽陨砑夹g(shù)水平的限制不能使用計(jì)算機(jī)這一有利工具進(jìn)行三維作圖。于是我們有了開發(fā)一種全新的以空間交互為基礎(chǔ)的三維作圖方式的想法,這套新的系統(tǒng)使用硬件采集作圖動(dòng)作的數(shù)據(jù),使得用戶可以在計(jì)算機(jī)中像捏泥人那樣直觀地“捏”出三維實(shí)體。正如古代的一些手工藝者雖然不能精確地計(jì)算三維空間中點(diǎn)的位置,但他們依然可以憑借對(duì)空間的感知直接在三維空間內(nèi)創(chuàng)作三維實(shí)體。同時(shí),開發(fā)一套這樣的空間交互式三維作圖系統(tǒng)可以使計(jì)算機(jī)更加人性化,即按照人的思維方式進(jìn)行三維建模。用戶可以不必受自身計(jì)算機(jī)知識(shí)的限制。經(jīng)過(guò)一系列討論,我們最終下定決心將這個(gè)基于三維作圖的想法變成現(xiàn)實(shí)。項(xiàng)目的整體設(shè)計(jì)思路按鍵模擬點(diǎn)按鍵模擬點(diǎn)位移深度旋轉(zhuǎn)電位器的角度值1號(hào)5410AD單片機(jī)直線電位器的高度信息2號(hào)5410AD單片機(jī)89C計(jì)算機(jī)三維圖像BCB調(diào)用OpenGL的庫(kù)函數(shù)根據(jù)作圖算法生成的點(diǎn)的坐標(biāo)值繪制三維圖像。用BCB編寫三維作圖算法對(duì)接口程序處理生成的數(shù)據(jù)進(jìn)行運(yùn)算生成點(diǎn)的坐標(biāo)值。接口程序,并對(duì)收到的數(shù)據(jù)進(jìn)一步加工。反饋:計(jì)算機(jī)將正在被修改的點(diǎn)的坐標(biāo)發(fā)送至單片機(jī)。原始數(shù)據(jù)原始數(shù)據(jù)作圖模式信息圖1項(xiàng)目整體設(shè)計(jì)我們最終對(duì)項(xiàng)目作出整體設(shè)計(jì)如圖1:要實(shí)現(xiàn)直觀的空間交互式三維作圖系統(tǒng)的開發(fā),首先需要開發(fā)以空間交互為基礎(chǔ)的作圖硬件系統(tǒng)采集作圖所必需的數(shù)據(jù)。這些數(shù)據(jù)應(yīng)該涵蓋空間中的基本元素,比如高度,角度,以及平面內(nèi)的位移。其次,需要開發(fā)一個(gè)作圖算法把硬件采集的信息運(yùn)算成三維圖形的空間表示(即坐標(biāo))。此外,還需要計(jì)算機(jī)調(diào)用作圖API繪制圖像并反饋?zhàn)鲌D信息。硬件系統(tǒng)硬件系統(tǒng)是由我們自主設(shè)計(jì)開發(fā)的,其功能是采集基于空間交互的實(shí)時(shí)數(shù)據(jù)發(fā)送至計(jì)算機(jī),其核心是兩張我們自行設(shè)計(jì)制作的電路板,一張主要用于作圖操作(操作板),另一張用于數(shù)據(jù)處理和發(fā)送(控制板)。圖2操作板圖3控制板

圖2操作板圖3控制板圖5STC12C5410AD單片機(jī)圖4STC5410AD單片機(jī)原理圖1,采集高度變化信息采集數(shù)據(jù)的功能主要由數(shù)個(gè)按鍵和兩個(gè)精密電位器完成。其中一個(gè)直線電位器用于采集作圖點(diǎn)的高度,一個(gè)旋轉(zhuǎn)電位器采集作圖點(diǎn)的角度值,這樣操作者可以通過(guò)上下移動(dòng)并轉(zhuǎn)動(dòng)操作板來(lái)在空間中定位操作點(diǎn),同時(shí)可以將作出的圖形拉伸或旋轉(zhuǎn)。而位于操作板上的八個(gè)按鍵可以模擬對(duì)四個(gè)操作點(diǎn)的擠壓和拉伸圖5STC12C5410AD單片機(jī)圖4STC5410AD單片機(jī)原理圖1,采集高度變化信息控制板上有四個(gè)用于選擇作圖模式的按鍵,使操作者可以選擇不同的作圖精細(xì)程度和作圖模式(對(duì)點(diǎn)、對(duì)線、對(duì)面進(jìn)行操作),豐富了系統(tǒng)的作圖功能。圖6圖6STC12C5410AD單片機(jī)原理圖2,操作板采集旋轉(zhuǎn)信息和點(diǎn)的位移3.2硬件中的STC12C5410AD單片機(jī)STC12C5410AD單片機(jī)是深圳宏晶公司生產(chǎn)的一款非常實(shí)用的具有A/D轉(zhuǎn)換功能的28腳單片機(jī),基本功能與常用的51單片機(jī)兼容。在我們的硬件系統(tǒng)中有兩個(gè)STC12C5410AD單片機(jī),位于兩塊電路板上,分別將直線電位器和旋轉(zhuǎn)電位器輸出腳的電壓值轉(zhuǎn)化成10位二進(jìn)制數(shù)并運(yùn)算處理,同時(shí)這兩個(gè)單片機(jī)還會(huì)采集操作點(diǎn)的按鈕信息并以固定的波特率將這些信息發(fā)送到STC89C52單片機(jī)。3.3硬件中的STC89C52單片機(jī)圖880C52理圖,采集作圖模式信息,與計(jì)算機(jī)通信,驅(qū)動(dòng)LED圖7STC89C52單片機(jī)STC89C52單片機(jī)是宏晶公司生產(chǎn)的一種常見的40腳單片機(jī),十分穩(wěn)定實(shí)用,基本功能與8051機(jī)兼容。在我們的硬件系統(tǒng)中,STC89C52單片機(jī)擔(dān)任的是主機(jī)角色,它從兩個(gè)STC12C5410AD單片機(jī)接收作圖信息,把這些數(shù)據(jù)與它采集的作圖模式信息重新打包后發(fā)給計(jì)算機(jī)。它還接收來(lái)自計(jì)算機(jī)的數(shù)據(jù),驅(qū)動(dòng)LED七段晶體管顯示作圖點(diǎn)的坐標(biāo),豐富了人機(jī)交互的內(nèi)容,使用戶也能夠精確操作作圖。硬件系統(tǒng)的程序是圖880C52理圖,采集作圖模式信息,與計(jì)算機(jī)通信,驅(qū)動(dòng)LED圖7STC89C52單片機(jī)3.4硬件系統(tǒng)的開發(fā)過(guò)程在開發(fā)過(guò)程中,我們首先繪制了硬件的原理圖,之后用Protel軟件繪制了電路板。隨后我們熱轉(zhuǎn)印方式制作了電路板:打印電路板圖紙,用熱轉(zhuǎn)印機(jī)將油墨壓到覆銅板上,用雙氧水加鹽酸腐蝕覆銅板,使用小臺(tái)鉆鉆孔,安裝原件并焊接。在測(cè)試了兩張電路板的性能后,我們將整個(gè)硬件系統(tǒng)整合成整體并與計(jì)算機(jī)相連。如下圖。圖9完整的硬件系統(tǒng)圖9完整的硬件系統(tǒng)軟件系統(tǒng)4.1軟件系統(tǒng)的構(gòu)成軟件程序是完全由我們自行編寫的,使用的開發(fā)工具是BorlandC++Builder6.0(以下簡(jiǎn)稱BCB)。程序主要包括三個(gè)模塊。一是數(shù)據(jù)傳輸模塊,我們使用串口通信控件接收來(lái)自單片機(jī)的空間作圖數(shù)據(jù)并向單片機(jī)發(fā)送坐標(biāo)值;二是三維作圖算法,用于處理數(shù)據(jù)并最終生成點(diǎn)的坐標(biāo);三是圖像的繪制模塊,調(diào)用OpenGL作為圖形接口生成窗口并使用定點(diǎn)坐標(biāo)數(shù)組繪制三維圖形。4.2單片機(jī)與計(jì)算機(jī)接口程序單片機(jī)與計(jì)算機(jī)的接口程序是該項(xiàng)目中人機(jī)交互的重要一環(huán),是我們用BCB編寫的,該程序除了在計(jì)算機(jī)端接收和發(fā)送數(shù)據(jù)外,還對(duì)來(lái)自單片機(jī)的十六進(jìn)制數(shù)據(jù)包進(jìn)行拆分重組,將它們加工成作圖算法程序便于直接處理的格式。4.3作圖算法與實(shí)現(xiàn)作圖算法是我們用BCB編寫的,其基本功能是利用接口程序加工成的數(shù)據(jù)生成三維空間中點(diǎn)的坐標(biāo)。采用的是極坐標(biāo)思想。程序首先建立表示全部頂點(diǎn)的二維數(shù)組DRAWING[][]。我們將空間分成512個(gè)高度平面(數(shù)組第一維),又在每個(gè)平面上定義了256個(gè)角度(數(shù)組第二維),每個(gè)角度上有一個(gè)點(diǎn)。通過(guò)高度值定位當(dāng)前所在的平面,通過(guò)旋轉(zhuǎn)的角度值定位需要被修改的點(diǎn)所在的角度,而一個(gè)點(diǎn)的位置由其所在的高度平面和其到Z的距離(數(shù)組的值)確定。程序先定位點(diǎn),然后根據(jù)操作點(diǎn)的狀態(tài)對(duì)點(diǎn)的位置進(jìn)行修改。設(shè)一個(gè)點(diǎn)在高度平面h上,所處角度為α,到Z軸的距離為X,即DRAWING[h][α]=X,若該點(diǎn)被“擠壓”,則有:DRAWING[h][α]’=X*0.99,(此處數(shù)據(jù)僅用來(lái)描述算法,下同)同時(shí)這個(gè)點(diǎn)兩側(cè)的共10個(gè)點(diǎn)也將被不同程度地“擠壓”,有:DRAWING[h][α+n]’=Xn*[0.99+(|n|*0.02)],(|n|<=5);若該點(diǎn)被“拉伸”,則有:DRAWING[h][α]’=X/0.99;同時(shí)這個(gè)點(diǎn)兩側(cè)的共10個(gè)點(diǎn)也將被不同程度地“拉伸”,有:DRAWING[h][α+n]’=Xn/[0.99+(|n|*0.02)],(|n|<=5);這種運(yùn)算設(shè)計(jì)使得點(diǎn)的移動(dòng)更符合物理力學(xué)規(guī)律。同時(shí)由于硬件具有模式選擇功能,當(dāng)用戶選擇對(duì)線操作時(shí),可以將一條豎線上的點(diǎn)即DRAWING[H][α](H為數(shù)個(gè)h值的集合)都“拉伸”或“擠壓”,而當(dāng)用戶選擇對(duì)面操作時(shí),可以將一個(gè)面上的點(diǎn)即DRAWING[H][Α](H為數(shù)個(gè)h值的集合,Α為數(shù)個(gè)α值的集合)都“拉伸”或“擠壓”,這其中H,Α的大小取決于用戶選擇的作圖精細(xì)度,精度越高,H,Α范圍越小。程序還能對(duì)整個(gè)一個(gè)平面進(jìn)行旋轉(zhuǎn),假設(shè)用戶通過(guò)操作板旋轉(zhuǎn)高度平面DRAWING[h][Α]β度(β為任意角度,Α為256個(gè)α值的集合),程序?qū)⑼ㄟ^(guò)一個(gè)過(guò)渡數(shù)組FLAT[256]和一個(gè)引入的變量γ來(lái)完成運(yùn)算,其算法為:γ=(α+β)mod256;FLAT[α]=DRAWING[h][α];DRAWING[h][γ]=FLAT[α];由于硬件端的單片機(jī)通過(guò)串行口每秒發(fā)送十五次數(shù)據(jù),程序可每秒進(jìn)行這一系列運(yùn)算十五次,足以滿足交互式作圖的要求。每次運(yùn)算結(jié)束后,程序會(huì)將刷新過(guò)的DRAWING[][]的值轉(zhuǎn)化成點(diǎn)的坐標(biāo)值以便繪圖程序直接調(diào)用,對(duì)于一個(gè)點(diǎn)A:DRAWING[h][α]=X,它最終的三維坐標(biāo)xA,yA,zA為:xA=(X*cosα)*k1;yA=(X*sinα)*k1;zA=h*k2;其中k1和k2是比例系數(shù)用于調(diào)整空間圖像的尺寸。由此可見,這套軟件作圖算法可以滿足基本的三維作圖需求。4.4OpenGL繪圖程序?qū)崿F(xiàn)OpenGL是現(xiàn)在十分流行圖形編程API,可移植性強(qiáng),常被用于三維作圖軟件的開發(fā)。其應(yīng)用的本質(zhì)是用戶可以在C的環(huán)境下通過(guò)調(diào)用庫(kù)函數(shù)直接對(duì)計(jì)算機(jī)的顯示設(shè)備下指令。我們作圖軟件的繪制工作就是由BCB添加OpenGL的頭文件后調(diào)用其庫(kù)函數(shù)完成的。該部分程序中,我們首先用OpenGL生成了窗口并設(shè)置了顯示格式,并設(shè)置了視圖矩陣來(lái)定義觀察三維圖形的模式。在繪圖程序中,觀察位置和角度會(huì)隨著作圖精細(xì)度的改變而改變,我們還添加了使三維圖形旋轉(zhuǎn)的代碼,使操作者能夠從各個(gè)角度看到生成的三維圖像,提高了軟件的實(shí)用性。實(shí)際使用性能測(cè)試與操作樣例在完成整個(gè)系統(tǒng)的設(shè)計(jì),制作,程序編寫后,我們對(duì)整個(gè)系統(tǒng)進(jìn)行了性能測(cè)試并與其他三維作圖工具進(jìn)行了一些比較。發(fā)現(xiàn)我們開發(fā)的空間交互式三維作圖系統(tǒng)在可以完成作圖功能的基礎(chǔ)上具有一些突出的優(yōu)點(diǎn)。在構(gòu)建基礎(chǔ)三維圖元方面有許多潛在優(yōu)勢(shì)。5.1該系統(tǒng)作圖具有較好的力學(xué)特性體驗(yàn)圖11使用該系統(tǒng)構(gòu)建的枕頭模型圖10使用該系統(tǒng)實(shí)現(xiàn)對(duì)一塊泥的擠壓如圖10所示,用空間交互式所圖方法模擬的對(duì)一塊泥模型進(jìn)行擠壓操作。擠壓和拉伸處的曲線十分柔和,符合力學(xué)規(guī)律。這種擠壓是空間交互式作圖的一種基本操作,用作圖算法可以很輕易地圖11使用該系統(tǒng)構(gòu)建的枕頭模型圖10使用該系統(tǒng)實(shí)現(xiàn)對(duì)一塊泥的擠壓5.2,該系統(tǒng)可以比較容易地實(shí)現(xiàn)旋轉(zhuǎn)和拉伸圖12使用該系統(tǒng)構(gòu)建的礦泉水瓶模型如圖12所示,空間交互式三維作圖系統(tǒng)可以容易的實(shí)現(xiàn)拉伸與旋轉(zhuǎn)。該圖中的水瓶是以一個(gè)底面為基礎(chǔ),操作者在旋轉(zhuǎn)操作板的同時(shí)在豎直方向上拉伸操作板構(gòu)建的。這一旋轉(zhuǎn)與拉伸的操作具有連續(xù)性,十分便捷,作圖圖12使用該系統(tǒng)構(gòu)建的礦泉水瓶模型5.3,該系統(tǒng)在基于圓形的作圖方面有明顯的優(yōu)勢(shì)圖13使用該系統(tǒng)構(gòu)建的花瓶模型由于該系統(tǒng)的作圖算法是基于極坐標(biāo)的方式進(jìn)行運(yùn)算的,所以其在處理圓形為基礎(chǔ)的三維圖形方面有著本質(zhì)上的優(yōu)勢(shì)。如圖13所示,該系統(tǒng)可以非常容易的構(gòu)建花瓶一類的三維模型。由于該系統(tǒng)在圓形方面極強(qiáng)的處理能力,它在構(gòu)建一些工業(yè)零件,家居用品,工業(yè)產(chǎn)品方面有著巨大的應(yīng)用前景。圖13使用該系統(tǒng)構(gòu)建的花瓶模型項(xiàng)目前景與展望我們的研究項(xiàng)目實(shí)現(xiàn)了空間交互式三維作圖的設(shè)想,創(chuàng)新了計(jì)算機(jī)三維作圖的方式。雖然很多方面不夠完善合理,但證明了這一作圖方法的可行性以及它與現(xiàn)行三維作圖軟件相比的一些優(yōu)勢(shì)。我們希望通過(guò)對(duì)這個(gè)項(xiàng)目的進(jìn)一步研究與完善開拓視野,為計(jì)算機(jī)三維作圖的發(fā)展提供新思路,使之進(jìn)一步直觀化,大眾化。6.1硬件方面的完善設(shè)想我們有兩個(gè)完善硬件系統(tǒng)的設(shè)想。一是提高擠壓操作質(zhì)量,大體有兩個(gè)方向:我們或采用一些新型材料(如感光材料)涂抹在操作板上并將其接入電路,通過(guò)更高級(jí)的讀取方式同時(shí)對(duì)數(shù)萬(wàn)個(gè)乃至更多的點(diǎn)進(jìn)行定位,使得作圖更加精細(xì),柔和;或是采用類似相機(jī)變焦鈕的結(jié)構(gòu)完善對(duì)擠壓信息的采集,可以精確讀取擠壓深度,使作圖的力學(xué)性質(zhì)得以進(jìn)一步凸顯。二是對(duì)硬件進(jìn)行更高級(jí)的封裝,比如USB接口,通過(guò)編寫協(xié)議將其制成Windows可以識(shí)別的硬件體系,于是不再采用串口通信的模式

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論