999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenGL ES的齒輪參數化建模及其移動端可視化研究

2017-05-17 09:02:29張海林鄒欣孫津原
數字技術與應用 2017年3期

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

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

關鍵詞:OpenGL ES;漸開線圓柱齒輪;參數化建模;移動端可視化

中圖分類號:TH132.41 文獻標識碼:A 文章編號:1007-9416(2017)03-0077-05

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

1 齒輪參數化建模關鍵技術及過程

1.1 OpenGL ES繪圖原理

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

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

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

1.2 齒輪參數化建模數據的確定

根據設定目標,確定齒輪參數化建模所需要的參數。本論文設定的目標是構建標準漸開線圓柱齒輪;能動態生成直齒輪和斜齒輪兩種類型,斜齒輪的螺旋角可以調節;通過調節模數、齒數、齒輪厚度改變齒輪的輪廓特征,通過調節顏色的RGB值改變齒輪顯示顏色,通過調節齒孔半徑,給齒輪開不同大小的孔或槽,具體的參數名稱、參數代號,參數取值如表1所示。

本論文構建標準漸開線圓柱齒輪,因此對部分參數取標準值,該參數在計算中始終是常數。另有一些基本參數根據表1中輸入的參數而確定,具體參數名稱、參數代號、計算公式如表2所示。

1.3 齒輪繪制過程

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

(1)

(2)

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

(3)

(4)

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

當計算出一個齒的右部分頂點后,采用對稱的方法求出左部分的頂點。首先確定對稱直線,在圖3笛卡爾坐標系中,直線就是該直線,設斜率角為,取值根據公式(5),設該直線的斜率為,則該直線方程為。從Vertex_List中遍歷每個點,根據公式六求出對應點,增加到Vertex_List中,得到圖4中②部分的區域,b區域為三角形形狀,根據邊界點可以得出。

(5)

(6)

設齒槽對應圓心角為,當時,;當時,。根據公式(7),計算相關坐標點增加到Vertex_List中,得到圖4中③部分的c區域,其中的取值范圍為[]。

(7)

當繪制好一個完整齒后,需要復制出z-1個齒,這些齒是以原點為中心,根據公式(8),旋轉復制而得,并將復制后的坐標增加到Vertex_List中,繪制的結果如圖5中⑤,其中的取值范圍為[][10]。

(8)

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

(9)

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

2 移動端可視化流程

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

下面展示移動端可視化流程的一種案例:

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

3 APP運行及結果

首先點擊手機桌面上名稱為Gear的APP,進入APP的界面,如圖13所示。界面右側的參數面板分點擊和滑動兩種操作,改變相應的參數,界面中間的齒輪形態同步改變。當連續改變某一參數,可動態觀察齒輪的變化。手指選中中間的齒輪,可以任意角度的旋轉,進行觀察。界面左側的滑動條用來調整APP內的攝像機與齒輪的遠近位置。圖14為斜齒輪,螺旋角調到20,選擇槽孔,孔徑52mm,模數選擇5.5,“第二系列”文字提示用紅色顯示,因為在機械行業模數要優先選擇第一系列的數值。齒數選擇39,齒厚為模數的6倍,齒輪的顏色R、G、B值分別是0、127、131。

4 結語

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

參考文獻

[1]管巧娟.基于認知過程的機類基礎課組合式學習[J].圖學學報,2015(04):638-643.

[2]邱龍輝,楚電明,葉琳.基于智能手機的工程圖學虛擬模型庫的研究與實現[J].圖學學報,2013(01):83-86.

[3]盧杰,米彩盈.基于SolidWorks 的聯合參數化設計方法研究[J].圖學學報,2013(6):64-68.

[4]胡一欽.變結構體參數設計的一種新方法[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 游戲開發技術寶典--OpenGL ES2.0[M].北京:人民郵電出版社,2012.

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

[8]李華敏,韓元瑩,王知行.漸開線齒輪的幾何原理與計算[M].北京:機械工業出版社,1985.

[9]張俊義,丁文捷.可實現參數化的漸開線圓柱齒輪建模方法研究[J].機械研究與應用,2013(06):40-42.

[10]張憲榮,陳麥,張萱.工業設計理念與方法[M].北京:北京理工大學出版社,2007.

主站蜘蛛池模板: 日a本亚洲中文在线观看| 色综合狠狠操| 性色一区| 欧美成人二区| 久久综合亚洲鲁鲁九月天| 无码一区18禁| 国产欧美视频在线观看| 日韩成人在线一区二区| 热久久综合这里只有精品电影| 国产精品久久久久婷婷五月| 一级毛片免费观看久| 欧美成人精品一级在线观看| 免费人成网站在线高清| 国内熟女少妇一线天| 日韩国产黄色网站| 黄色网站在线观看无码| 国国产a国产片免费麻豆| 2018日日摸夜夜添狠狠躁| 国产麻豆福利av在线播放 | 国产拍揄自揄精品视频网站| 国产精品永久久久久| 欧美国产菊爆免费观看| 色综合成人| 亚洲一区二区三区国产精品 | 亚洲成在人线av品善网好看| 国产综合网站| 国产精品综合久久久| 无码人妻免费| 日韩大片免费观看视频播放| 国产AV无码专区亚洲精品网站| AV在线天堂进入| 精品亚洲麻豆1区2区3区| 亚洲va欧美va国产综合下载| 午夜三级在线| 国产一级做美女做受视频| 国产精品永久不卡免费视频| 国产三级毛片| 超级碰免费视频91| 91欧美在线| 亚洲成人在线网| 91毛片网| 777午夜精品电影免费看| 最新国产高清在线| 成人午夜免费观看| 91毛片网| 影音先锋丝袜制服| 久久久噜噜噜| 久久久成年黄色视频| 精品无码国产自产野外拍在线| 亚洲精品无码人妻无码| 成人一区专区在线观看| 亚洲动漫h| 97国产一区二区精品久久呦| 亚洲精品自在线拍| 国产极品美女在线观看| 日韩第一页在线| 亚洲第一极品精品无码| 老熟妇喷水一区二区三区| 日韩精品成人网页视频在线| 欧美日本中文| 亚洲AV无码久久精品色欲| 伊人久久精品无码麻豆精品| 狠狠色丁香婷婷综合| 永久天堂网Av| 国产精品无码作爱| 中文字幕亚洲第一| 99久久国产精品无码| 丁香五月婷婷激情基地| 国产欧美日韩精品第二区| 午夜国产理论| 在线人成精品免费视频| 日本一区二区三区精品AⅤ| 成年人免费国产视频| 呦系列视频一区二区三区| 国产真实乱了在线播放| 无码免费的亚洲视频| 精品中文字幕一区在线| 亚洲第一香蕉视频| 国产欧美日韩va| 波多野结衣一区二区三区四区视频 | 97青青青国产在线播放| 精品91视频|