国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

空間交互式3D建模方法研究

2011-12-29 00:00:00何依征康顥嚴(yán)王家懿
中國科技教育 2011年9期


  簡介
  
  現(xiàn)行的三維作圖系統(tǒng)開發(fā)大多基于二維平面數(shù)據(jù)進(jìn)行處理和運(yùn)算,而且有向更加精確化、數(shù)學(xué)化的方向發(fā)展的趨勢。但這未必是三維作圖最佳的發(fā)展方向。
  在使用CAD軟件作圖過程中,只用鼠標(biāo)和鍵盤操作存在不便之處,其最大缺陷是鼠標(biāo)與鍵盤是基于二維平面進(jìn)行工作的計(jì)算機(jī)硬件,操作者在使用時(shí)缺乏對(duì)三維空間的直觀感受,所以只能靠精確控制數(shù)據(jù)來提升作圖質(zhì)量。現(xiàn)行三維作圖軟件的另一弊端是軟件需要使用人員具備一定的計(jì)算機(jī)知識(shí),因?yàn)榛诙S空間和數(shù)據(jù)的三維作圖需要建模人員依照計(jì)算機(jī)的處理模式進(jìn)行操作,這使得許多有很強(qiáng)空間想象力的人因?yàn)樽陨砑夹g(shù)水平的限制不能使用計(jì)算機(jī)這一有力工具進(jìn)行三維作圖。
  從古到今,許多民間藝人都是出色的三維建模者。盡管沒有精確的空間定位,他們?nèi)阅軇?chuàng)作出美妙的三維實(shí)體。這啟發(fā)我們開發(fā)一套使用戶能夠憑對(duì)空間的直觀感知直接在計(jì)算機(jī)中“捏”出他們設(shè)想三維模型的三維建模軟件。這套新的系統(tǒng)使用硬件采集作圖動(dòng)作的數(shù)據(jù),使得用戶可以在計(jì)算機(jī)中像捏泥人那樣直觀地“捏”出三維實(shí)體。同時(shí),開發(fā)一套這樣的空間交互式三維作圖系統(tǒng)可以使計(jì)算機(jī)按照人的思維方式進(jìn)行三維建模,而不必受自身計(jì)算機(jī)知識(shí)的限制。
  
  項(xiàng)目的整體設(shè)計(jì)思路
  
  系統(tǒng)原理
  
  要實(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信息。整體工作原理見圖1。
  
  硬件系統(tǒng)
  硬件系統(tǒng)是由我們自主設(shè)計(jì)開發(fā)的,其功能是采集基于空間交互的實(shí)時(shí)數(shù)據(jù)并發(fā)送至計(jì)算機(jī),其核心是2張我們自行設(shè)計(jì)制作的電路板,一張主要用于作圖操作(操作板,見圖2),另一張用于數(shù)據(jù)處理和發(fā)送(控制板,見圖3)。
  
  采集交互動(dòng)作的方式
  采集數(shù)據(jù)的功能主要由數(shù)個(gè)按鍵和2個(gè)精密電位器完成,其中一個(gè)直線電位器采集作圖點(diǎn)的高度,另一個(gè)旋轉(zhuǎn)電位器采集作圖點(diǎn)的角度值。操作者可以通過移動(dòng)及轉(zhuǎn)動(dòng)操作板來定位空間中的操作點(diǎn),同時(shí)可以將所作的圖形拉伸或旋轉(zhuǎn)。操作板上的8個(gè)按鍵可以模擬對(duì)4個(gè)操作點(diǎn)的擠壓、拉伸及旋轉(zhuǎn),從而實(shí)現(xiàn)用戶空間交互的功能。
  控制板上有4個(gè)用于選擇作圖模式的按鍵,使操作者可以選擇不同的作圖精細(xì)程度和作圖模式(對(duì)點(diǎn)、對(duì)線或?qū)γ孢M(jìn)行操作),豐富了系統(tǒng)的作圖功能。
  在我們的硬件系統(tǒng)中有2個(gè)STC12C5410AD單片機(jī),分別將直線電位器和旋轉(zhuǎn)電位器輸出的電壓值轉(zhuǎn)化成10位二進(jìn)制數(shù)并運(yùn)算處理,同時(shí)這2個(gè)單片機(jī)還會(huì)采集操作點(diǎn)的按鈕信息并將這些信息發(fā)送到STC89C52單片機(jī)。STC89C52單片機(jī)從2個(gè)STC12C5410AD單片機(jī)接收作圖信息,把這些數(shù)據(jù)與它采集的作圖模式信息重新打包后發(fā)給計(jì)算機(jī)。它還接收來自計(jì)算機(jī)的數(shù)據(jù),驅(qū)動(dòng)LED七段晶體管顯示作圖點(diǎn)的坐標(biāo),豐富了人機(jī)交互的內(nèi)容。硬件系統(tǒng)的程序是用匯編語言編寫的。
  
  硬件系統(tǒng)的制作
  
  在開發(fā)過程中,我們首先繪制了硬件的原理圖,之后用Protel軟件繪制了電路板,隨后我們用熱轉(zhuǎn)印方式制作了電路板,安裝原件并焊接。在測試了2張電路板的性能后,我們將整個(gè)硬件系統(tǒng)整合成整體并與計(jì)算機(jī)相連,完整的硬件系統(tǒng)見圖4。
  
  軟件系統(tǒng):作圖算法與實(shí)現(xiàn)
  軟件程序主要包括3個(gè)模塊:一是接口程序,我們使用串口通信控件接收來自單片機(jī)的空間作圖數(shù)據(jù)并向單片機(jī)發(fā)送坐標(biāo)值;二是三維作圖算法,用于處理數(shù)據(jù)并最終生成點(diǎn)的坐標(biāo),是軟件系統(tǒng)的核心;三是圖像的繪制模塊,調(diào)用OpenGL作為圖形接口生成窗口并使用定點(diǎn)坐標(biāo)數(shù)組繪制三維圖形。
  作圖算法的基本功能是利用接口程序加工成的數(shù)據(jù)生成三維空間中點(diǎn)的坐標(biāo)。算法采用極坐標(biāo)思想。程序首先建立表示全部頂點(diǎn)的二維數(shù)組DRAWING[][]。我們將空間分成512個(gè)高度平面(數(shù)組第一維),又在每個(gè)平面上定義了256個(gè)角度(數(shù)組第二維),每個(gè)角度上有一個(gè)點(diǎn)。通過高度值定位當(dāng)前所在的平面,通過旋轉(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ù)僅用來描述算法,下同)
  同時(shí)這個(gè)點(diǎn)兩側(cè)的共10個(gè)點(diǎn)也將被不同程度地“擠壓”,有:DRAWING[h][α+n]’=Xn*[0.99+(In|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ī)律。
  由于硬件具有模式選擇功能,當(dāng)用戶選擇對(duì)線操作時(shí),可以將一條豎線上的點(diǎn)即DRAWING[H][α](H為數(shù)個(gè)h值的集合)都“拉伸”或“擠壓”,而當(dāng)用戶選擇對(duì)面操作時(shí),可以將一個(gè)面上的點(diǎn)即DRAWING[H][A](H為數(shù)個(gè)h值的集合,A為數(shù)個(gè)α值的集合)都“拉伸”或“擠壓”,這其中H、A的大小取決于用戶選擇的作圖精細(xì)度,精度越高,H、A的取值范圍越小。
  程序還能對(duì)整個(gè)一個(gè)平面進(jìn)行旋轉(zhuǎn),假設(shè)用戶通過操作板旋轉(zhuǎn)高度平面DRAWING[h][A]β度(β為任意角度,A為256個(gè)α值的集合),程序?qū)⑼ㄟ^一個(gè)過渡數(shù)組FLAT[256]和一個(gè)引入的變量γ來完成運(yùn)算。
  由于硬件端的單片機(jī)通過串行口每秒發(fā)送15次數(shù)據(jù),程序可每秒進(jìn)行15次這一系列的運(yùn)算,這樣的數(shù)據(jù)刷新速率足以滿足交互式作圖的要求。每次運(yùn)算結(jié)束后,程序會(huì)將刷新過的DRAWING[][[]的值轉(zhuǎn)化成點(diǎn)的坐標(biāo)值以便繪圖程序直接調(diào)用,對(duì)于一個(gè)點(diǎn)A,DRAWING[h][α]=X,它最終的三維坐標(biāo)X,y,z為:
  X=(X*cosα)*k;
  y=(X*sinα)*k;z=h*k;
  其中k和k是比例系數(shù),用于調(diào)整空間圖像的尺寸。
  
  實(shí)際使用性能測試與操作樣例
  
  在完成整個(gè)系統(tǒng)的設(shè)計(jì),制作,程序編寫后,我們對(duì)整個(gè)系統(tǒng)進(jìn)行了性能測試并與其他三維作圖工具進(jìn)行了一些比較,發(fā)現(xiàn)我們開發(fā)的空間交互式三維作圖系統(tǒng)在可以完成作圖功能的基礎(chǔ)上具有一些突出的優(yōu)點(diǎn),在構(gòu)建基礎(chǔ)三維圖元方面有許多潛在優(yōu)勢。
  
  該系統(tǒng)作圖具有較好的力學(xué)特性體驗(yàn)
  如圖5所示,用空間交互式所圖方法模擬的對(duì)一塊泥模型進(jìn)行擠壓操作。擠壓和拉伸處的曲線十分柔和,符合力學(xué)規(guī)律。這種擠壓是空間交互式作圖的一種基本操作,用作圖算法可以很輕易地構(gòu)建出來。而且該系統(tǒng)支持對(duì)點(diǎn)、線、面進(jìn)行不同程度的擠壓,十分方便。
  
  該系統(tǒng)可以比較容易地實(shí)現(xiàn)拉伸和旋轉(zhuǎn)
  如圖6所示,空間交互式三維作圖系統(tǒng)可以容易地實(shí)現(xiàn)圖形的拉伸與旋轉(zhuǎn)。該圖中的水瓶是以一個(gè)底面為基礎(chǔ)、操作者在旋轉(zhuǎn)操作板的同時(shí)在豎直方向上拉伸操作板構(gòu)建的。這一旋轉(zhuǎn)與拉伸的操作具有連續(xù)性,十分便捷,作圖的效果也很出色。
  
  該系統(tǒng)在基于圓形的作圖方面有明顯的優(yōu)勢
  由于該系統(tǒng)的作圖算法是基于極坐標(biāo)的方式進(jìn)行運(yùn)算的,所以在處理圓形為基礎(chǔ)的三維圖形方面有著本質(zhì)上的優(yōu)勢。它在構(gòu)建一些工業(yè)零件、家居用品、工業(yè)產(chǎn)品方面有著巨大的應(yīng)用前景。
  
  項(xiàng)目前景與展望
  
  我們的研究項(xiàng)目實(shí)現(xiàn)了空間交互式三維作圖的設(shè)想,創(chuàng)新了計(jì)算機(jī)三維作圖的方式。雖然這一系統(tǒng)很多方面還不夠完善合理,但已經(jīng)證明了系統(tǒng)所用作圖方法的可行性以及它與現(xiàn)行三維作圖軟件相比的一些優(yōu)勢。
  我們有兩個(gè)完善硬件系統(tǒng)的設(shè)想。一是提高擠壓操作質(zhì)量,二是對(duì)硬件進(jìn)行更高級(jí)的封裝,提高整個(gè)系統(tǒng)的工作效率。
  在軟件方面,我們有三個(gè)改善系統(tǒng)的設(shè)想。一是完善作圖算法。我們可以在程序中引入更多的物理力學(xué)元素甚至定理,也可以定義更多的曲線處理方式,使程序能夠增強(qiáng)三維作圖的現(xiàn)實(shí)感,使其進(jìn)一步直觀化。二是鑒于該系統(tǒng)主要適用于構(gòu)建幾何圖元,我們計(jì)劃增加對(duì)生成的圖元進(jìn)行封裝的功能,使其可以與現(xiàn)行的三維作圖軟件接口,這樣用戶可以利用已有資源進(jìn)行更高端的后期制作。三是將這種空間交互的方式推廣用于動(dòng)畫制作,使得動(dòng)畫設(shè)計(jì)可以采用力學(xué)處理的方式,更加方便、逼真。
  我們希望我們開發(fā)的作圖系統(tǒng)能夠得到進(jìn)一步的完善,使得它得到推廣。相信在更多人的努力下,三維作圖將能變得更加方便、更加節(jié)約時(shí)間和成本、具有更多的實(shí)用價(jià)值,為這個(gè)社會(huì)創(chuàng)造出更多的驚喜。
  
  專家評(píng)語
  
  該項(xiàng)目以空間交互式3D建模方法為研究對(duì)象,選題具有重要的應(yīng)用價(jià)值。通過交互式3D控制硬件與軟件,基于單片機(jī)的硬件支持,使用戶可以根據(jù)需求和意念來控制3D圖形,這種設(shè)計(jì)具有產(chǎn)品化前景,希望進(jìn)一步完

溆浦县| 英吉沙县| 清丰县| 汉川市| 若尔盖县| 桂阳县| 明溪县| 汨罗市| 谷城县| 太湖县| 黄大仙区| 东阳市| 华池县| 四会市| 舟曲县| 沁源县| 顺义区| 安多县| 岑溪市| 收藏| 达尔| 新闻| 明星| 张掖市| 同心县| 藁城市| 江源县| 裕民县| 肇州县| 淳安县| 同心县| 皋兰县| 神农架林区| 精河县| 叙永县| 滨州市| 宿迁市| 师宗县| 敦化市| 惠水县| 平利县|