亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenGL ES的齒輪參數(shù)化建模及其移動(dòng)端可視化研究

        2017-05-17 09:02:29張海林鄒欣孫津原

        張海林++鄒欣++孫津原

        摘要:構(gòu)建基于OpenGL ES的漸開(kāi)線圓柱齒輪模型,解決在移動(dòng)設(shè)備上參數(shù)化生成漸開(kāi)線圓柱齒輪模型困難和漸開(kāi)線圓柱齒輪模型在移動(dòng)端可視化流程等問(wèn)題。分析漸開(kāi)線圓柱齒輪形成原理,根據(jù)移動(dòng)設(shè)備圖形渲染庫(kù)OpenGL ES渲染方式確定漸開(kāi)線圓柱齒輪建模數(shù)據(jù)的方法進(jìn)行研究。總結(jié)出漸開(kāi)線圓柱齒輪的參數(shù)化建模關(guān)鍵技術(shù)和移動(dòng)端可視化流程,以Unity3D為開(kāi)發(fā)環(huán)境,制作出在移動(dòng)設(shè)備上展示漸開(kāi)線圓柱齒輪的應(yīng)用程序(APP)。驗(yàn)證了基于OpenGL ES的漸開(kāi)線圓柱齒輪參數(shù)化建模在移動(dòng)設(shè)備上的優(yōu)越性,為構(gòu)建其它機(jī)械構(gòu)件模型提供了方法,同時(shí)探索了機(jī)械類(lèi)知識(shí)在移動(dòng)設(shè)備上的傳播。

        關(guān)鍵詞:OpenGL ES;漸開(kāi)線圓柱齒輪;參數(shù)化建模;移動(dòng)端可視化

        中圖分類(lèi)號(hào):TH132.41 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)03-0077-05

        機(jī)械類(lèi)基礎(chǔ)課中有很多抽象的原理知識(shí)不易被學(xué)生接收,又不能隨意刪減,然而在真實(shí)的情景中講述就能輕松釋義[1]。虛擬模型庫(kù)因其三維模型造型逼真、控制靈活而在教學(xué)中起到了一定的作用[2]。但是,已開(kāi)發(fā)的虛擬模型庫(kù)都是基于PC 平臺(tái)開(kāi)發(fā)的,而由于PC 平臺(tái)的在便攜性方面的限制,使得虛擬模型庫(kù)的應(yīng)用也受到了極大的限制。手持移動(dòng)設(shè)備的出現(xiàn),為解除這種束縛提供了條件,該類(lèi)設(shè)備最重要的屬性即是其便攜性,而且隨著硬件水平的不斷提高,運(yùn)行平臺(tái)的實(shí)用性也日益增強(qiáng),現(xiàn)在越來(lái)越多的應(yīng)用程序(APP)在移動(dòng)設(shè)備平臺(tái)上得以實(shí)施。若采用在工程軟件中建漸開(kāi)線圓柱齒輪模型,再把這些模型加載到APP中,會(huì)導(dǎo)致APP的安裝包過(guò)大,并且由于齒輪的參數(shù)不同,要把所有的漸開(kāi)線圓柱齒輪顯示在手持移動(dòng)設(shè)備上,需要建幾百個(gè)齒輪。本論文以漸開(kāi)線圓柱齒輪形成原理為基礎(chǔ),以移動(dòng)設(shè)備的圖形渲染庫(kù)OpenGL ES為工具進(jìn)行研究,得出漸開(kāi)線圓柱齒輪建模關(guān)鍵技術(shù),該技術(shù)可應(yīng)用到各種開(kāi)發(fā)環(huán)境中??偨Y(jié)出移動(dòng)端可視化流程,采用參數(shù)化設(shè)計(jì)的方法制作出可以在手持移動(dòng)設(shè)備上使用的APP。參數(shù)化設(shè)計(jì)方法就是將模型中的定量信息變量化,使之成為任意調(diào)整的參數(shù)。對(duì)于變量化參數(shù)賦予不同的數(shù)值,即可得到不同大小和形狀的零件模型[3]。參數(shù)化設(shè)計(jì)大大減少了重復(fù)設(shè)計(jì)量、縮短了設(shè)計(jì)周期和提高了設(shè)計(jì)效率,使機(jī)械類(lèi)構(gòu)件完美的呈現(xiàn)在移動(dòng)設(shè)備上[4]。

        1 齒輪參數(shù)化建模關(guān)鍵技術(shù)及過(guò)程

        1.1 OpenGL ES繪圖原理

        OpenGL ES 是一個(gè)跨平臺(tái)的圖形庫(kù),是專(zhuān)門(mén)為嵌入式系統(tǒng)(如Android系統(tǒng)、IOS系統(tǒng)等)而設(shè)計(jì)的,提供了功能完善的 2D 和3D圖形應(yīng)用程序接口API,創(chuàng)造了軟件與圖形間加速靈活強(qiáng)大的底層交互接口[5]。OpenGL ES 2.0及更高版本的渲染管線可編程,其繪圖原理如圖1所示。

        OpenGL ES中支持的繪制方式大致分3類(lèi),包括點(diǎn)、線段、三角形,每類(lèi)中包括一種或多種具體的繪制方式[6],本論文采用GL_TRIANGLES,此方式是三角形類(lèi)之一,其將傳入渲染管線的一系列頂點(diǎn)按照順序每3個(gè)組織成一個(gè)三角形進(jìn)行繪制。如圖2所示,所繪矩形由三角形V0V1V2、V3V4V5而得,其中頂點(diǎn)V2、V5以及頂點(diǎn)V1、V3位置相同。

        根據(jù)OpenGL ES繪圖原理和本論文采用的GL_TRIANGLES方式,在齒輪參數(shù)化建模中,需要確定頂點(diǎn)數(shù)組、法向量數(shù)組和顏色數(shù)組。其中頂點(diǎn)數(shù)組控制齒輪形狀,法向量數(shù)組控制齒輪對(duì)燈光的反射,顏色數(shù)組控制齒輪顏色。設(shè)三個(gè)數(shù)組類(lèi)型均為單精度浮點(diǎn)型,頂點(diǎn)數(shù)組命名為Vertex_List,法向量數(shù)組命名為Normal_List,顏色數(shù)組命名為Color_List。

        1.2 齒輪參數(shù)化建模數(shù)據(jù)的確定

        根據(jù)設(shè)定目標(biāo),確定齒輪參數(shù)化建模所需要的參數(shù)。本論文設(shè)定的目標(biāo)是構(gòu)建標(biāo)準(zhǔn)漸開(kāi)線圓柱齒輪;能動(dòng)態(tài)生成直齒輪和斜齒輪兩種類(lèi)型,斜齒輪的螺旋角可以調(diào)節(jié);通過(guò)調(diào)節(jié)模數(shù)、齒數(shù)、齒輪厚度改變齒輪的輪廓特征,通過(guò)調(diào)節(jié)顏色的RGB值改變齒輪顯示顏色,通過(guò)調(diào)節(jié)齒孔半徑,給齒輪開(kāi)不同大小的孔或槽,具體的參數(shù)名稱(chēng)、參數(shù)代號(hào),參數(shù)取值如表1所示。

        本論文構(gòu)建標(biāo)準(zhǔn)漸開(kāi)線圓柱齒輪,因此對(duì)部分參數(shù)取標(biāo)準(zhǔn)值,該參數(shù)在計(jì)算中始終是常數(shù)。另有一些基本參數(shù)根據(jù)表1中輸入的參數(shù)而確定,具體參數(shù)名稱(chēng)、參數(shù)代號(hào)、計(jì)算公式如表2所示。

        1.3 齒輪繪制過(guò)程

        如圖3所示,為展角,為壓力角,為基圓半徑,為漸開(kāi)線在任意點(diǎn)K(1、2、3等)的向徑。漸開(kāi)線極坐標(biāo)方程如公式(1)[7],將基圓圓心作為原點(diǎn),圓心與漸開(kāi)線的起始點(diǎn)A的連線作為x軸,與x軸垂直的方向作為Y軸建立笛卡爾坐標(biāo)系,按照漸開(kāi)線形成原理得出漸開(kāi)線的方程如公式(2)[8],其中。

        (1)

        (2)

        當(dāng)時(shí),齒根圓包含于基圓,齒廓曲線必然由徑向直線和漸開(kāi)線兩部分組成,且齒廓曲線處于基圓與齒根圓之間的為徑向直線,處于基圓與齒頂圓之間的為漸開(kāi)線;當(dāng)時(shí),齒根圓包含基圓,齒廓曲線全為漸開(kāi)線[9]。由此可以確定公式(2)中的取值范圍,當(dāng)時(shí),最小取值為,取最大值的條件為,即,其中和取值根據(jù)公式(3);當(dāng)時(shí),最小取值的條件為,即,其中和取值根據(jù)公式(4),的最大值與時(shí)的最大值一樣。

        (3)

        (4)

        本論文以時(shí)為例,的取值范圍為[],設(shè)其長(zhǎng)度為,將t平均分成n份,將、、到帶入公式(2),求出點(diǎn)1、2、3到n的坐標(biāo)。將坐標(biāo)點(diǎn)按三角形排列方式,102、203、304等所有坐標(biāo)點(diǎn)放入Vertex_List,當(dāng)n取合適值時(shí),就可以得到平滑的漸開(kāi)線面,如圖4中的①。

        當(dāng)計(jì)算出一個(gè)齒的右部分頂點(diǎn)后,采用對(duì)稱(chēng)的方法求出左部分的頂點(diǎn)。首先確定對(duì)稱(chēng)直線,在圖3笛卡爾坐標(biāo)系中,直線就是該直線,設(shè)斜率角為,取值根據(jù)公式(5),設(shè)該直線的斜率為,則該直線方程為。從Vertex_List中遍歷每個(gè)點(diǎn),根據(jù)公式六求出對(duì)應(yīng)點(diǎn),增加到Vertex_List中,得到圖4中②部分的區(qū)域,b區(qū)域?yàn)槿切涡螤睿鶕?jù)邊界點(diǎn)可以得出。

        (5)

        (6)

        設(shè)齒槽對(duì)應(yīng)圓心角為,當(dāng)時(shí),;當(dāng)時(shí),。根據(jù)公式(7),計(jì)算相關(guān)坐標(biāo)點(diǎn)增加到Vertex_List中,得到圖4中③部分的c區(qū)域,其中的取值范圍為[]。

        (7)

        當(dāng)繪制好一個(gè)完整齒后,需要復(fù)制出z-1個(gè)齒,這些齒是以原點(diǎn)為中心,根據(jù)公式(8),旋轉(zhuǎn)復(fù)制而得,并將復(fù)制后的坐標(biāo)增加到Vertex_List中,繪制的結(jié)果如圖5中⑤,其中的取值范圍為[][10]。

        (8)

        這樣,齒輪的正面繪制完,將所得數(shù)組命名為Vertex_List_1,并將所有頂點(diǎn)的坐標(biāo)值設(shè)置為。齒輪側(cè)面的數(shù)組命名為Vertex_list_2,齒輪背面數(shù)組命名為Vertex_list_3。在斜齒輪中,設(shè)齒輪正面的齒與齒輪背面的齒投影夾角為,根據(jù)公式九和公式八,對(duì)Vertex_List_1中的頂點(diǎn)計(jì)算,并將得到的每一個(gè)三角形頂點(diǎn)按順時(shí)針重新排列,坐標(biāo)值設(shè)置為,存入到Vertex_List_3,其中時(shí),為直齒輪。將Vertex_List_1和Vertex_List_3中對(duì)應(yīng)位置的頂點(diǎn)按照三角形方式排列,存入Vertex_List_2中,即得到齒輪側(cè)面數(shù)組。將Vertex_List清空,將Vertex_List_1、Vertex_List_2、Vertex_List_3按照順序存入Vertex_List中,至此,齒輪頂點(diǎn)數(shù)組制作完成,繪制后的效果如圖5中的⑥。

        (9)

        根據(jù)存入到Vertex_List中的點(diǎn),計(jì)算齒輪面法向量,存放到Normal_List中。計(jì)算方法是從Vertex_List中提取一個(gè)三角形的三個(gè)點(diǎn),設(shè)為點(diǎn)A、B、C,由點(diǎn)A點(diǎn)B構(gòu)造向量,由點(diǎn)A點(diǎn)C構(gòu)造向量,則點(diǎn)A、點(diǎn)B、點(diǎn)C的向量是,存放到Normal_List中。然后遍歷Vertex_List,計(jì)算所有對(duì)應(yīng)點(diǎn)的向量,存放到Normal_List中。本論文研究的齒輪,每個(gè)頂點(diǎn)的顏色相同,并且由光的三原色R、G、B確定,Color_List中存放所有頂點(diǎn)的R、G、B值,其中R、G、B的值由參數(shù)傳入而確定。

        2 移動(dòng)端可視化流程

        移動(dòng)端可視化流程,如圖6所示,第一步設(shè)定目標(biāo),即制作的APP要滿(mǎn)足的功能。第二步,確定齒輪參數(shù)化建模數(shù)據(jù),根據(jù)第一步設(shè)定的目標(biāo),參數(shù)分為固定參數(shù)和可變參數(shù),其中可變參數(shù)需要通過(guò)界面交互傳入,因此界面設(shè)計(jì)除滿(mǎn)足美學(xué)要求外,也要滿(mǎn)足可變參數(shù)的改變。第三步,選擇移動(dòng)端APP開(kāi)發(fā)工具,如針對(duì)Android系統(tǒng)開(kāi)發(fā)的Eclipse軟件、針對(duì)iOS系統(tǒng)開(kāi)發(fā)的XCode軟件、跨平臺(tái)開(kāi)發(fā)軟件Cocos2d-x、Unity3d、Unreal Engine 4等,不同軟件所使用的開(kāi)發(fā)語(yǔ)言不同,如Eclipse使用Java,Unreal Engine 4使用C++。第四步,根據(jù)本論文第一節(jié)齒輪參數(shù)化建模關(guān)鍵技術(shù)及過(guò)程和選擇的開(kāi)發(fā)工具及其相應(yīng)的開(kāi)發(fā)語(yǔ)言,確定頂點(diǎn)數(shù)組(Vertex_List)、法線數(shù)組(Normal_List)和顏色數(shù)組(Color_List)具體值。第五步,結(jié)合app界面設(shè)計(jì)進(jìn)行程序設(shè)計(jì)。第六步,圖形測(cè)試,檢查是否有剖面,形狀、顏色是否正確等。第七步,針對(duì)移動(dòng)端,生成相應(yīng)的APP文件。

        下面展示移動(dòng)端可視化流程的一種案例:

        第一步,本案例設(shè)定目標(biāo)為能展示標(biāo)準(zhǔn)直齒、斜齒漸開(kāi)線圓柱齒輪,其中斜齒輪螺旋角可以改變;能夠在齒輪中間開(kāi)圓孔和槽孔,孔徑大小可以改變;齒輪模數(shù)、齒數(shù)、齒厚、顏色可以改變;可以遠(yuǎn)近觀察齒輪。第二步,根據(jù)第一步設(shè)定的目標(biāo),除需要表1和表2,需要增減直齒輪和斜齒輪切換參數(shù),以及遠(yuǎn)近觀察參數(shù),由此APP的界面設(shè)計(jì)如圖7所示,圖中間部分放齒輪模型。第三步,本案例選Unity3D為開(kāi)發(fā)工具、C#為開(kāi)發(fā)語(yǔ)言。第四步,圖8所示,為將公式三轉(zhuǎn)換成代碼形式,確定漸開(kāi)線面的頂點(diǎn),形狀如圖4中的①。按照此方法,計(jì)算出所有部分的頂點(diǎn)后,放入Vertex_List中,得到頂點(diǎn)數(shù)組。法線數(shù)組(Normal_List)和顏色數(shù)組(Color_List)方法一致。第五步,進(jìn)行程序設(shè)計(jì),如圖9所示。首先在Unity場(chǎng)景編輯器中建立GameObject,命名為Gear_Watch;其次,為Gear_Watch構(gòu)建腳本(Script),命名為GearMode.cs,腳本文件中的變量與第二步確定的相對(duì)應(yīng),并與界面設(shè)計(jì)的圖標(biāo)進(jìn)行關(guān)聯(lián);最后,為Gear_Watch添加材質(zhì)(Material),命名為Material_Gear.mat,材質(zhì)的著色器(shader)選擇專(zhuān)門(mén)為本案例編寫(xiě)的Shader_VF_Gear.shader,控制齒輪的顏色。開(kāi)發(fā)工具選擇的不同,頂點(diǎn)數(shù)組(Vertex_List)、法線數(shù)組(Normal_List)、顏色數(shù)組(Color_List)輸入到渲染管線的方式可能不同。如圖10所示,腳本GearMode.cs的部分代碼,頂點(diǎn)數(shù)組的輸入,需要將Vertex_List轉(zhuǎn)換成只存儲(chǔ)坐標(biāo)點(diǎn)的vertices數(shù)組和只存儲(chǔ)頂點(diǎn)三角形索引位置的triangles數(shù)組,然后傳入渲染管線。由于所有的頂點(diǎn)顏色一樣,根據(jù)著色器(shader)的編寫(xiě),只需要傳入三個(gè)顏色值即可,不用傳入Color_List數(shù)組。第六步,圖形測(cè)試,如圖11所示,改變不同的參數(shù),生成的齒輪部分圖片,經(jīng)測(cè)試,結(jié)果正確。第七步,在Unity中的File菜單下的Build Settings面板中,選擇移動(dòng)端系統(tǒng)的選項(xiàng),點(diǎn)擊Build,即生成相對(duì)應(yīng)系統(tǒng)的APP安裝文件,如圖12所示。

        3 APP運(yùn)行及結(jié)果

        首先點(diǎn)擊手機(jī)桌面上名稱(chēng)為Gear的APP,進(jìn)入APP的界面,如圖13所示。界面右側(cè)的參數(shù)面板分點(diǎn)擊和滑動(dòng)兩種操作,改變相應(yīng)的參數(shù),界面中間的齒輪形態(tài)同步改變。當(dāng)連續(xù)改變某一參數(shù),可動(dòng)態(tài)觀察齒輪的變化。手指選中中間的齒輪,可以任意角度的旋轉(zhuǎn),進(jìn)行觀察。界面左側(cè)的滑動(dòng)條用來(lái)調(diào)整APP內(nèi)的攝像機(jī)與齒輪的遠(yuǎn)近位置。圖14為斜齒輪,螺旋角調(diào)到20,選擇槽孔,孔徑52mm,模數(shù)選擇5.5,“第二系列”文字提示用紅色顯示,因?yàn)樵跈C(jī)械行業(yè)模數(shù)要優(yōu)先選擇第一系列的數(shù)值。齒數(shù)選擇39,齒厚為模數(shù)的6倍,齒輪的顏色R、G、B值分別是0、127、131。

        4 結(jié)語(yǔ)

        在研究OpenGL ES圖形庫(kù)的基礎(chǔ)上,以漸開(kāi)線圓柱齒輪的形成原理為理論基礎(chǔ),結(jié)合幾何學(xué)相關(guān)知識(shí),總結(jié)出漸開(kāi)線圓柱齒輪參數(shù)化建模的關(guān)鍵技術(shù),即確定頂點(diǎn)數(shù)組、法線數(shù)組和顏色數(shù)組。根據(jù)所得數(shù)組,結(jié)合開(kāi)發(fā)環(huán)境,同時(shí)參考交互設(shè)計(jì)、界面設(shè)計(jì)、計(jì)算機(jī)編程等知識(shí),得出移動(dòng)端可視化流程。并使用Unity3D制作出可安裝到移動(dòng)端的APP,動(dòng)態(tài)展示不同參數(shù)下的齒輪形狀和顏色,驗(yàn)證了基于OpenGL ES的漸開(kāi)線圓柱齒輪參數(shù)化建模在移動(dòng)設(shè)備上展示的優(yōu)越性。此外,根據(jù)總結(jié)出的漸開(kāi)線圓柱齒輪參數(shù)化建模關(guān)鍵技術(shù)、移動(dòng)端可視化流程,為構(gòu)建其它機(jī)械構(gòu)件提供了指導(dǎo),如構(gòu)建錐齒輪、凸輪等。對(duì)機(jī)械構(gòu)件在移動(dòng)設(shè)備上進(jìn)行虛擬演示奠定了一定基礎(chǔ),使機(jī)械知識(shí)的傳播和普及更加方便、高效。

        參考文獻(xiàn)

        [1]管巧娟.基于認(rèn)知過(guò)程的機(jī)類(lèi)基礎(chǔ)課組合式學(xué)習(xí)[J].圖學(xué)學(xué)報(bào),2015(04):638-643.

        [2]邱龍輝,楚電明,葉琳.基于智能手機(jī)的工程圖學(xué)虛擬模型庫(kù)的研究與實(shí)現(xiàn)[J].圖學(xué)學(xué)報(bào),2013(01):83-86.

        [3]盧杰,米彩盈.基于SolidWorks 的聯(lián)合參數(shù)化設(shè)計(jì)方法研究[J].圖學(xué)學(xué)報(bào),2013(6):64-68.

        [4]胡一欽.變結(jié)構(gòu)體參數(shù)設(shè)計(jì)的一種新方法[J].機(jī)械設(shè)計(jì)與制造,2011(5):41-42.

        [5]Hu Xueyan, Xia Zhonglin. Study on Image Deformation Simulation based on ARM Linux and OpenGL ES[J]. Intelligence Science and Information Engineering,2011(8):303-306.

        [6]吳亞峰.Android3D 游戲開(kāi)發(fā)技術(shù)寶典--OpenGL ES2.0[M].北京:人民郵電出版社,2012.

        [7]孫恒,陳作模,葛文杰.機(jī)械原理[M].北京:高等教育出版社,2006.

        [8]李華敏,韓元瑩,王知行.漸開(kāi)線齒輪的幾何原理與計(jì)算[M].北京:機(jī)械工業(yè)出版社,1985.

        [9]張俊義,丁文捷.可實(shí)現(xiàn)參數(shù)化的漸開(kāi)線圓柱齒輪建模方法研究[J].機(jī)械研究與應(yīng)用,2013(06):40-42.

        [10]張憲榮,陳麥,張萱.工業(yè)設(shè)計(jì)理念與方法[M].北京:北京理工大學(xué)出版社,2007.

        久久狼人国产综合精品| 亚洲视频99| 无码AⅤ最新av无码专区| 美国黄色av一区二区| 大陆国产乱人伦| 中文字幕av无码免费一区| 69av在线视频| 综合中文字幕亚洲一区二区三区| av熟妇一区二区三区| 免费无遮挡禁18污污网站| 亚洲人成网站在线播放观看| 男女干逼视频免费网站| 91色老久久偷偷精品蜜臀懂色| 人妻体体内射精一区二区| 国产一区二区波多野结衣| 中文字幕日本女优在线观看| 久草手机视频在线观看| 色一情一乱一伦| 国产不卡一区二区三区免费视| 久久人妻av不卡中文字幕| 开心五月激情五月五月天| 日韩精品内射视频免费观看| 中文字幕第七页| 99国产精品欲av麻豆在线观看| 免费亚洲一区二区三区av| 国产在线精品一区在线观看| 久久亚洲AV成人一二三区| 亚洲精品中文字幕码专区| 色综合天天综合欧美综合| 亚洲精品国产成人| 久久99中文字幕久久| 少妇被粗大的猛进69视频| 久久综合九色综合久99| 精品88久久久久88久久久| 魔鬼身材极品女神在线| 国产在线播放一区二区不卡| 日本黄页网站免费观看| 无码av免费精品一区二区三区| 日韩精品一区二区亚洲观看av| 免费视频成人片在线观看| 日本VA欧美VA精品发布|