欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種面向移動設(shè)備的多點觸控手勢交互三維建模方法與流程

文檔序號:11864242閱讀:340來源:國知局
一種面向移動設(shè)備的多點觸控手勢交互三維建模方法與流程
本發(fā)明應(yīng)用于支持多點觸控技術(shù)的移動設(shè)備上,具體涉及到一種面向移動設(shè)備的多點觸控手勢交互三維建模方法。
背景技術(shù)
:隨著移動設(shè)備CPU、內(nèi)存、顯示屏等硬件技術(shù)的不斷發(fā)展以及智能操作系統(tǒng)開發(fā)環(huán)境的日益完善,基于移動設(shè)備的應(yīng)用日愈豐富,一些傳統(tǒng)的軟件公司和機構(gòu)也在研究將其PC應(yīng)用移植到移動平臺上。在三維建模領(lǐng)域,已有一些公司推出了其移動平臺的建模系統(tǒng),如AutoCAD,中望CAD等,但是這些應(yīng)用仍延續(xù)傳統(tǒng)的基于GUI按鈕的交互方式及三維建模方法,由于移動設(shè)備上由于屏幕分辨率有限及計算精度等原因,手指觸摸點擊按鈕的效率與精確度較差,導(dǎo)致用戶使用困難、學(xué)習(xí)成本高,使得移動設(shè)備上建模系統(tǒng)在用戶中的推廣受到阻礙。隨著移動設(shè)備上電容式顯示屏技術(shù)的快速發(fā)展,市場上幾乎所有移動設(shè)備已經(jīng)具備支持多點觸控手勢交互的能力,而這類交互方式也逐漸在移動應(yīng)用上成為主流,例如滑動解鎖、下拉刷新、滑動翻頁等手勢交互發(fā)明極大提高了用戶體驗。三維建模領(lǐng)域由于涉及到大量的圖形對象操作,對于多點觸控手勢交互方式十分貼合,可以預(yù)想到手勢交互方式將會成為移動平臺上三維建模領(lǐng)域的主流交互方案。技術(shù)實現(xiàn)要素:本發(fā)明的目的在于克服現(xiàn)有移動平臺上三維建模系統(tǒng)的缺點與不足,提供一種基于多點觸控手勢交互的三維建模方法。為了達到上述發(fā)明目的,本發(fā)明采用以下技術(shù)方案:一種面向移動設(shè)備的多點觸控交互的三維建模方法,包括如下步驟:S1、利用自定義的數(shù)據(jù)格式記錄三維建??臻g的當前狀態(tài),并將所記錄的當前狀態(tài)信息作為三維建??臻g中各對象的構(gòu)造參數(shù)進行建模空間的初始化;S2、定義所述三維建模方法中的三維建模操作功能集合,包括:生成、操縱及編輯三大類型的功能操作子集合,及其各功能操作分別對應(yīng)的多點觸控手勢行為子集合;S3、在支持多點觸控的觸摸屏上進行單指或多指的手勢交互操作并監(jiān)聽;S4、對手勢交互操作進行識別,調(diào)用識別的手勢行為所映射的三維建模功能,實現(xiàn)相應(yīng)的建模操作。進一步地,所述步驟S1中數(shù)據(jù)格式包括:當前攝像機狀態(tài)信息,記錄當前攝像機的位置與方向;模型的構(gòu)造幾何表示樹信息,記錄當前三維建??臻g中所存在的模型體素及它們相互間的組成關(guān)系;體素的邊界表示結(jié)構(gòu)信息,記錄當前三維建??臻g中模型體素的點、邊、面、體等幾何拓撲結(jié)構(gòu)關(guān)系。進一步地,所述生成類型的功能操作子集合包括:規(guī)則體素生成功能、直線生成功能、曲線生成功能、圓弧生成功能;其中,所述規(guī)則體素生成功能中規(guī)則體素是作為構(gòu)建CSG樹體素結(jié)點的正則規(guī)則模型集合,包含:長方體、圓柱體、圓錐體、球體,并在特征屬性中通過構(gòu)成體素的參數(shù)屬性進行定義,該功能需要參數(shù)位置坐標x、位置坐標z,在建模空間的笛卡爾坐標系(x,0,z)位置P創(chuàng)建三維形體;所述直線生成功能,實現(xiàn)繪制一條直線路徑,并記錄為線拓撲,記錄有限元分析的直線逼進剖分,該功能需要參數(shù)起始點startPoint、終止點endPoint,直線繪制在一個定位在建??臻g的笛卡爾坐標系的XOY基準平面上;所述曲線生成功能,實現(xiàn)繪制一條貝塞爾曲線路徑,n階的貝塞爾曲線繪制如公式所示:Pik=Pik=0(1-t)Pik-1+t(1-t)Pi+1k-1k=1,2,...,ni=0,1,...,n-k]]>其中n為貝塞爾曲線階數(shù),i為貝塞爾曲線的序列點,t是曲線細分段數(shù),并由曲線剖分算法的直線逼進,將曲線分解記錄為線拓撲,該功能需要參數(shù)曲線控制點集合PointSet,曲線繪制在一個定位在建模空間的笛卡爾坐標系的XOY基準平面上;所述圓弧生成功能,實現(xiàn)繪制一條圓弧路徑,其中圓弧的極坐標方程如公式所示:其中(h,k)為橢圓中心,(a,b)為橢圓控制參數(shù),(x,y)是點坐標,并通過有限元分析的直線逼進剖分,圓弧記錄為多段線拓撲,該功能需要參數(shù)焦點矩形rectangle、起始角度startAngle、掃掠角度sweepAngle,圓弧繪制在一個定位在建??臻g的笛卡爾坐標系的XOY基準平面上。進一步地,所述操縱類型的功能操作子集合包括:視角旋轉(zhuǎn)及放縮操縱功能、體素位移及旋轉(zhuǎn)操縱功能、體素軸向及整體伸縮操縱功能、體素快速對齊操縱功能、基準軸操縱功能、基準面操縱功能、基準體操縱功能,其中,所述視角旋轉(zhuǎn)及放縮操縱功能,通過設(shè)置視角變換矩陣從而改變攝像機位置,該功能定義參數(shù)攝像機與球心距離D、與Z軸角a、與XOY平面角b,攝像機偏向角c,則視角變換矩陣如公式:Mv=DsinacosbDsinbDcosacosb000Dsina(cos(b+c)-cosb)Dsin(b+c)-DsinbDcosa(cos(b+c)-cosb);]]>所述體素位移及旋轉(zhuǎn)操縱功能,實現(xiàn)基本體素在3維笛卡爾空間下能夠圍繞x軸、y軸、z軸做位移變換以及旋轉(zhuǎn)變換,位移功能定義對象相對空間三個坐標軸的位移參數(shù)為(Tx,Ty,Tz),旋轉(zhuǎn)功能定義對象的旋轉(zhuǎn)軸心向量與旋轉(zhuǎn)角度V=((x,y,z),α);所述體素軸向及整體伸縮操縱功能,通過選取物體自身坐標系的x軸、y軸、z軸做伸縮變換,實現(xiàn)基本體素的尺度伸縮功能,功能參數(shù)定義為x軸放縮因子,y軸放縮因子,z軸放縮因子(Sx,Sy,Sz);所述體素快速對齊操縱功能,通過選取源對齊體素的面與被對齊體素的面,實現(xiàn)體素快速對齊操縱功能,將源體素通過調(diào)用體素位移、旋轉(zhuǎn)的方法,快速將兩個面貼合對齊在一起,功能參數(shù)定義為源對齊體素引用S1與被對齊體素引用S2;所述基準軸操縱功能,通過選取體素的規(guī)范軸向,用以作為操縱體素方法的控制軸,通過向量點積進行軸向的匹配,從而選取基準軸;所述基準面操縱功能,通過選取空間中的二維正則平面,用以作為旋轉(zhuǎn)或掃掠方法的基本平面,再通過判斷拾取射線與平面上的三角形網(wǎng)格進行逐一相交性檢測的方法,從而定位到具體的面網(wǎng)格引用,功能參數(shù)定義為三維空間拾取射線D;所述基準體操縱功能,通過選取建??臻g中CSG樹的體素對象,用以作為操縱或特征方法,再通過拾取射線與仿射變換后的OBB包圍盒相交判斷的方法完成對體素的基準拾取,功能參數(shù)定義為三維空間拾取射線D。進一步地,所述編輯類型的功能操作子集合包括:擠出編輯功能、切除編輯功能、掃掠編輯功能、回掃編輯功能,其中,所述擠出編輯功能,通過在基本體素的某一面結(jié)構(gòu)上構(gòu)建一個擠出體素,并定義擠出特征,然后將基本體素與擠出體通過正則體素布爾并集運算實現(xiàn),功能參數(shù)定義為擠出體素引用和被擠出體素引用;所述切除編輯功能,通過在基本體素的某一面結(jié)構(gòu)上構(gòu)建一個切除體素,并定義切除特征,然后將基本體素與切除體通過正則體素布爾差集運算實現(xiàn),功能參數(shù)定義為擠出體素引用和被擠出體素引用;所述掃掠編輯功能,通過選取一個繪制的二維的正則封閉基準面,然后定義一條掃掠軌跡,使得基準面沿掃掠軌跡生成一個掃掠體素,功能參數(shù)定義為掃掠面引用與掃掠軌跡引用;所述回掃編輯功能,通過選取一個繪制的二維與Z軸構(gòu)成封閉的基準面,使基準面沿Z軸旋轉(zhuǎn)生成一個回掃體素,功能參數(shù)定義為回掃面引用與回掃軸引用。進一步地,所述生成類型的功能操作子集合中各功能分別對應(yīng)的多點觸控手勢行為子集合包括:繪制規(guī)則體素手勢行為、繪制直線手勢行為、繪制曲線手勢行為、繪制圓弧手勢行為,其中,所述繪制規(guī)則體素手勢行為的定義如下:先單指Click規(guī)則體素按鈕,選取體素類型,在單指Click在建??臻g上,手指按下的位置P(X,Y)作為體素繪制位置的參數(shù)調(diào)用繪制規(guī)則體素生成方法;所述繪制直線手勢行為的定義如下:先在繪制基準面平面上單指Press,手指位置P(X,Y)作為直線起始點參數(shù),然后在繪制基準面平面上數(shù)次單指Drag,手指位置P(X,Y)不斷更新為直線的終止點參數(shù),并調(diào)用繪制直線生成方法;所述繪制曲線手勢行為的定義如下:先在繪制基準面平面上單指Press,手指位置P(X,Y)作為曲線起始控制點參數(shù),然后在繪制基準面平面上數(shù)次單指Drag,手指位置P(X,Y)不斷更新為曲線的終止控制點參數(shù),并將兩點加入曲線控制點集合作為參數(shù)調(diào)用繪制曲線的方法,再數(shù)次單指Drag操作,每次手指位置P(X,Y)加入貝塞爾曲線的控制點列表中,并調(diào)用繪制曲線生成方法;所述繪制圓弧手勢行為的定義如下:先在繪制基準面平面上單指Press,手指位置P(X,Y)作為橢圓a控制點參數(shù),然后在繪制基準面平面上數(shù)次單指Drag,手指位置P(X,Y)不斷更新為曲線的橢圓b控制點參數(shù),并調(diào)用繪制圓弧的建模方法,再單指Click操作,手指位置P(X,Y)與已知的圓心坐標計算出圓弧的起始角度,然后單指Click操作,手指位置P(X,Y)與已知的圓心坐標計算出圓弧的終止角度,最后再次調(diào)用繪制圓弧生成方法。進一步地,所述操縱類型的功能操作子集合中各功能分別對應(yīng)的多點觸控手勢行為子集合包括:視角旋轉(zhuǎn)及放縮手勢行為、體素位移及旋轉(zhuǎn)手勢行為、體素軸向及整體伸縮手勢行為、體素快速對齊手勢行為、體素復(fù)制手勢行為和體素基準軸、面、體手勢行為,其中,所述視角旋轉(zhuǎn)及放縮手勢行為的定義如下:對于所述視角旋轉(zhuǎn)手勢行為,首先單指Press操作,判斷按下位置是否不在任何面或體上,如果是,則繼續(xù),否則退出,再次Drag操作,將手指相對上次位置的橫向相對向量Vx與縱向相對向量Vy記錄相應(yīng)的旋轉(zhuǎn)角度作為參數(shù)調(diào)用視角旋轉(zhuǎn)操縱方法;對于所述視角放縮手勢行為,首先三指Press操作,判斷按下位置是否不在任何面或體上,如果是,則繼續(xù),否則退出,然后三指Drag操作,并且判斷三指移動向量V1、V2、V3方向是否兩兩互相相反,三指位置P1(X,Y)、P2(X,Y)、P3(X,Y)計算相對Press操作時的位置的向量V1、V2、V3,并計算平均值,方向同時設(shè)為三軸,作為參數(shù)調(diào)用視角旋轉(zhuǎn)操縱方法;所述體素位移及旋轉(zhuǎn)手勢行為的定義如下:對于所述體素位移手勢行為,首先雙指Press操作,雙指位置P1(X,Y)、P2(X,Y)計算相對位置V1,然后雙指Drag操作,并且判斷是否兩指移動方向V2、V3一致,與按下向量V1平行,再計算雙指位置P1(X,Y)、P2(X,Y)相對Press操作時的位置的向量V2、V3,并計算位移量L與方向V,作為參數(shù)調(diào)用體素位移操縱方法;對于所述體素旋轉(zhuǎn)手勢,首先雙指Press操作,雙指位置P1(X,Y)、P2(X,Y)計算相對位置V1,然后雙指Drag操作,并且判斷是否兩指移動方向V2、V3一致,與按下向量V1垂直,再計算雙指位置P1(X,Y)、P2(X,Y)相對Press操作時的位置的向量V2、V3,并計算旋轉(zhuǎn)角度a與方向V,作為參數(shù)調(diào)用體素位移操縱方法。所述體素軸向及整體伸縮手勢行為的定義如下:對于所述體素軸向伸縮手勢,首先雙指Press操作,雙指位置P1(X,Y)、P2(X,Y)計算相對位置V1,然后雙指Drag操作,并且判斷是否兩指移動方向V2、V3相反,與按下向量V1平行,再計算雙指位置P1(X,Y)、P2(X,Y)相對Press操作時的位置的向量V2、V3,并計算伸縮量S與方向V,作為參數(shù)調(diào)用體素伸縮操縱方法;對于所述體素整體伸縮手勢,首先三指Press操作,并且三指位置至少一個在物體上,然后三指Drag操作,三指位置P1(X,Y)、P2(X,Y)、P3(X,Y)計算相對Press操作時的位置的向量V1、V2、V3,并計算伸縮平均值S,方向同時設(shè)為三軸,作為參數(shù)調(diào)用體素旋轉(zhuǎn)操縱方法;所述體素復(fù)制手勢行為的定義如下:三指Drag操作,其中三指移動向量保持平行且方向一致,根據(jù)當前基準體作為參數(shù)調(diào)用創(chuàng)建規(guī)則體素生成方法,并根據(jù)三指分別的位置P1(X,Y)、P2(X,Y)、P3(X,Y)計算移動的平均距離S與方向V調(diào)用體素位移操縱方法;所述體素快速對齊手勢行為的定義如下:先單指Press操作在源對齊體素位置上,記錄手指位置P1(X,Y),再單指Drag操作,并從源對齊體素離開,手指位置P2(X,Y)與P1計算相對向量進而判斷源對齊面法向量N1,最后單指Drag操作,從空間中進入被對齊體素,手指位置進入前位置P3(X,Y)與抬起位置P4(X,Y)計算相對向量進而判斷被對齊面法向量N2,將N1、N2作為參數(shù)調(diào)用體素對齊方法;所述體素基準軸、面、體手勢行為的定義如下:雙指Press操作在建??臻g上,雙指位置P1(X,Y)、P2(X,Y)計算相對位置向量V作為參數(shù)調(diào)用基準軸編輯方法;單指Click操作在要選擇的面上,單指位置P(X,Y)作為參數(shù)調(diào)用基準面編輯方法;單指LongClick操作在要選擇的體素上,單指位置P(X,Y)作為參數(shù)調(diào)用基準體編輯方法。進一步地,所述編輯類型的功能操作子集合中各功能分別對應(yīng)的多點觸控手勢行為子集合包括:擠出手勢行為、切除手勢行為、掃掠手勢行為以及回掃手勢行為,其中,所述擠出手勢行為的定義如下:先單指Click,手指位置P(X,Y)調(diào)用基準體編輯方法選擇被擠出體,然后雙指Press,其中一指按在源體素上,按在源體素的手指位置P(X,Y)調(diào)用基準體編輯方法,再一指Press不動,另一指做Drag操作,并且位移向量向外,將源體素引用與被擠出體素引用作為參數(shù)調(diào)用擠出編輯方法;所述切除手勢行為的定義如下:先單指Click,手指位置P(X,Y)調(diào)用基準體編輯方法選擇被擠出體,然后雙指Press,其中一指按在源體素上,按在源體素的手指位置P(X,Y)調(diào)用基準體編輯方法,再一指Press不動,另一指做Drag操作,并且位移向量向內(nèi),將源體素引用與被擠出體素引用作為參數(shù)調(diào)用擠出編輯方法;所述掃掠手勢行為的定義如下:先單指Click,手指位置P(X,Y)調(diào)用基準面編輯方法選擇掃掠面,再單指Drag,繪制掃掠軌跡,根據(jù)基準面和掃掠軌跡調(diào)用掃掠編輯方法生成掃掠體素;所述回掃手勢行為的定義如下:先單指Click,手指位置P(X,Y)調(diào)用基準面編輯方法選擇回掃面,根據(jù)基準面調(diào)用回掃編輯方法生成回掃體素。進一步地,所述步驟S3中,監(jiān)聽方法回調(diào)參數(shù)Motionevent是一個對觸控屏多點觸摸事件進行封裝的對象,包含手指觸摸屏幕保留的有效信息,其中所述有效信息包括手指觸控坐標、事件行為類型以及觸摸事件的持續(xù)時間,該對象會在用戶觸摸手機屏幕時被創(chuàng)建,通過設(shè)置一個int變量mode記錄當前觸摸屏幕的手指數(shù),當有手指按下事件時令mode++,當有手指抬起時令mode--,在不同按下、移動與抬起的不同action事件的事件回調(diào)中,依據(jù)mode變量進行匹配選擇操作,從而對各個action事件中不同手指數(shù)量觸摸的行為進行分別的定義,進而做出識別出相應(yīng)的手勢行為,并通過event對象的getX()與getY()方法獲得各個手指當前事件觸發(fā)時的屏幕坐標。本發(fā)明相對于現(xiàn)有技術(shù)具有如下的優(yōu)點及效果:1、適用于市面上絕大部分的支持多點觸控的移動設(shè)備,技術(shù)上具有跨平臺的優(yōu)勢,該方案可方便應(yīng)用于構(gòu)建一個三維建模移動應(yīng)用;2、針對其他三維建模交互技術(shù)操作繁瑣、學(xué)習(xí)成本高的缺陷,本發(fā)明通過設(shè)定基本手勢行為,以組合的方式簡化手勢操作的步驟,并通過圖形化方式將交互軌跡顯示在用戶界面上,以降低用戶的學(xué)習(xí)成本;3、針對其他技術(shù)定義的方法種類較少,無法應(yīng)對復(fù)雜形體建模的情況,本發(fā)明通過定義了一個包含模型繪制生成、視角自由漫游,模型幾何操縱,編輯特征方法等三維建模基本功能集合使得用戶可以通過一系列基本建模操作完成復(fù)雜三維模型的簡歷,并分別映射其手勢交互方式,通過手勢識別加以嚴格區(qū)分,使得用戶可以完全通過手勢快速的建立復(fù)雜三維形體;4、相比傳統(tǒng)的基于GUI的3D建模,本發(fā)明在完成時間與交互次數(shù)上具有顯著的優(yōu)勢,可大量減少用戶同種模型建?;ㄙM的時間,提高用戶的工作效率;5、本發(fā)明可有效通過一系列組合的手勢及建模操作完成對復(fù)雜三維模型的建立,具備實用可行性。附圖說明圖1是基于多點觸控手勢交互的三維建模流程方框圖;圖2是建模功能集合所映射的多點觸控手勢行為集合演示圖;圖3(a)是多點觸控交互方式與基于按鈕交互方式的總用時統(tǒng)計圖;圖3(b)是多點觸控交互方式與基于按鈕交互方式的總交互次數(shù)統(tǒng)計圖;圖3(c)是多點觸控交互方式與基于按鈕交互方式的各部分用時統(tǒng)計圖;圖3(d)是多點觸控交互方式與基于按鈕交互方式的各部分交互次數(shù)統(tǒng)計圖;圖4(a)是利用本發(fā)明進行“扳手”模型建模測試的示例結(jié)果圖;圖4(b)是利用本發(fā)明進行“餐桌”模型建模測試的示例結(jié)果圖;圖4(c)是利用本發(fā)明進行“飛機”模型建模測試的示例結(jié)果圖。具體實施方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚、明確,以下參照附圖并舉實施例對本發(fā)明進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。實施例本實施例公開了一種面向移動設(shè)備的多點觸控手勢交互三維建模方法,其流程方框圖如圖1所示,包括下述步驟:S1、利用自定義的數(shù)據(jù)格式記錄三維建??臻g的當前狀態(tài),并將所記錄的當前狀態(tài)信息作為三維建??臻g中各對象的構(gòu)造參數(shù)進行建??臻g的初始化;S2、定義所述三維建模方法中的三維建模操作功能集合,包括:生成、操縱及編輯三大類型的功能操作子集合,及其各功能操作分別對應(yīng)的多點觸控手勢行為子集合;S3、在支持多點觸控的觸摸屏上進行單指或多指的手勢交互操作并監(jiān)聽;S4、對手勢交互操作進行識別,調(diào)用識別的手勢行為所映射的三維建模功能,實現(xiàn)相應(yīng)的建模操作。在步驟S1中,利用自定義的數(shù)據(jù)格式記錄三維建??臻g的當前狀態(tài),其中數(shù)據(jù)格式包括:當前攝像機狀態(tài)信息,記錄當前攝像機的位置與方向;模型的構(gòu)造幾何表示樹信息,記錄當前三維建??臻g中所存在的模型體素及它們相互間的組成關(guān)系;體素的邊界表示結(jié)構(gòu)信息,記錄當前三維建??臻g中模型體素的點、邊、面、體等幾何拓撲結(jié)構(gòu)關(guān)系。通過二進制文件讀寫的方式將三維建模空間的當前狀態(tài)包含的三類信息在移動設(shè)備的物理存儲中保存與讀取,并將所記錄的狀態(tài)信息作為三維建??臻g中各對象的構(gòu)造參數(shù)進行建??臻g的初始化。在步驟S2中,定義所述三維建模方法中的三維建模操作功能集合,包括:生成、操縱及編輯三大類型的功能操作子集合,及其各功能操作分別對應(yīng)的多點觸控手勢行為子集合;其中生成、操縱及編輯三大類型的功能操作子集合中包含有關(guān)于三維模型的生成、操縱以及編輯的三大類型的功能操作子集合,每個子集合中包含有數(shù)種具體的相關(guān)建模功能,通過調(diào)用集合中的建模方法從而實現(xiàn)三維建模,各類型功能操作集合所包含的功能具體定義如下:上述生成類型的方法子集合包括:(1)規(guī)則體素生成功能。規(guī)則體素是作為構(gòu)建CSG樹體素結(jié)點的正則規(guī)則模型集合,目前包含有長方體、圓柱體、圓錐體、球體,并在特征屬性中通過構(gòu)成體素的參數(shù)屬性進行定義,長方體體素定義為長l、寬w、高h,圓柱體體素定義為半徑r、高h,圓錐體體素定義為半徑高r、高h,球體素定義為半徑r,并在所有對象中記錄了模型的拓撲結(jié)構(gòu)信息與三角網(wǎng)格劃分。該功能需要參數(shù)位置坐標x、位置坐標z,在建模空間的笛卡爾坐標系(x,0,z)位置P創(chuàng)建三維形體。(2)直線生成功能。直線作為構(gòu)建基準面的繪制方法之一,繪制一條直線路徑,并記錄為線拓撲,記錄有限元分析的直線逼進剖分,該功能需要參數(shù)起始點startPoint、終止點endPoint,直線繪制在一個定位在建??臻g的笛卡爾坐標系的XOY基準平面上。(3)曲線生成功能。曲線作為構(gòu)建基準面的繪制方法之一,繪制一條貝塞爾曲線路徑,n階的貝塞爾曲線繪制如公式所示:Pik=Pik=0(1-t)Pik-1+t(1-t)Pi+1k-1k=1,2,...,ni=0,1,...,n-k]]>其中n為貝塞爾曲線階數(shù),i為貝塞爾曲線的序列點,t是曲線細分段數(shù)。并由曲線剖分算法的直線逼進,將曲線分解記錄為線拓撲,該功能需要參數(shù)曲線控制點集合PointSet,曲線繪制在一個定位在建??臻g的笛卡爾坐標系的XOY基準平面上。(4)圓弧生成功能。圓弧作為構(gòu)建基準面的繪制方法之一,繪制一條圓弧路徑,其中圓弧的極坐標方程如公式所示:(x-h)2a2+(y-k)2b2=1]]>其中(h,k)為橢圓中心,(a,b)為橢圓控制參數(shù),(x,y)是點坐標。并通過有限元分析的直線逼進剖分,圓弧記錄為多段線拓撲,該功能需要參數(shù)焦點矩形rectangle、起始角度startAngle、掃掠角度sweepAngle,圓弧繪制在一個定位在建??臻g的笛卡爾坐標系的XOY基準平面上。上述操縱類型的方法子集合包括:(1)視角旋轉(zhuǎn)及放縮操縱功能。視角旋轉(zhuǎn)、放縮作為操縱攝像機的方法,通過設(shè)置視角變換矩陣從而改變攝像機位置,該功能定義參數(shù)攝像機與球心距離D、與Z軸角a、與XOY平面角b,攝像機偏向角c,則視角變換矩陣如公式:Mv=DsinacosbDsinbDcosacosb000Dsina(cos(b+c)-cosb)Dsin(b+c)-DsinbDcosa(cos(b+c)-cosb)]]>(2)體素位移及旋轉(zhuǎn)操縱功能?;倔w素在3維笛卡爾空間下能夠圍繞x軸、y軸、z軸做位移變換以及旋轉(zhuǎn)變換叫做6自由度變換,將體素在空間下作6自由度變換時,首先需要將對象從笛卡爾坐標系映射到齊次坐標系坐標(x,y,z,1)。位移功能定義對象相對空間三個坐標軸的位移參數(shù)為(Tx,Ty,Tz),則三維位移的齊次變換矩陣如公式所示:Mt=100001000010TxTyTz1]]>對于體素的旋轉(zhuǎn)變換,因為歐拉旋轉(zhuǎn)存在知名的萬向死鎖原因,則通過采用四元數(shù)旋轉(zhuǎn)的方法可以很好的解決該問題,定義四元數(shù)q表示公式所示:q=(xyzw)=xi+yj+zk+w四元數(shù)通過轉(zhuǎn)化為矩陣對體素齊次坐標進行變換的公式為:Mr=1-yy-zzxy+wzxz+wy0xy-wz1-xx-zzyz+wx0xz+wyyz+wx1-xx-yy00001]]>旋轉(zhuǎn)功能定義對象的旋轉(zhuǎn)軸心向量與旋轉(zhuǎn)角度V=((x,y,z),α),則旋轉(zhuǎn)變化公式所示:q=q·p=q·Vxsinα2Vysinα2Vzsinα2cosα2]]>(3)體素軸向及整體伸縮操縱功能。基本體素的尺度伸縮功能通過選取物體自身坐標系的x軸、y軸、z軸做伸縮換,將體素伸縮變換時,首先將體素坐標轉(zhuǎn)化為齊次坐標,在通過伸縮矩陣進行變化,該功能參數(shù)定義為x軸放縮因子,y軸放縮因子,z軸放縮因子(Sx,Sy,Sz),見公式:Mt=Sx0000Sy0000Sz00001]]>(4)體素快速對齊操縱功能?;倔w素的快速對齊功能通過選取源對齊體素的面與被對齊體素的面,將源體素通過調(diào)用體素位移、旋轉(zhuǎn)的方法,快速將兩個面貼合對齊在一起,參數(shù)定義為源對齊體素引用S1與被對齊體素引用S2,其中S.Vs、S.VT、S.q分別表示體素的伸縮變變量向量、位移變化向量、旋轉(zhuǎn)變化四元數(shù),Mr是四元數(shù)的旋轉(zhuǎn)變化矩陣,對齊的算法見公式:S=N1·S1.VS+N2·S2.VS]]>VΔT=(S2.q→Mr)·N2S1.q=S2.qS1.VT=S2.VT+S·VΔT(5)基準軸操縱功能指選取體素的規(guī)范軸向,用以作為操縱體素方法的控制軸,通過向量點積進行軸向的匹配,從而選取基準軸。(6)基準面操縱功能指選取空間中的二維正則平面,用以作為旋轉(zhuǎn)或掃掠方法的基本平面,再通過判斷拾取射線與平面上的三角形網(wǎng)格進行逐一相交性檢測的方法,從而定位到具體的面網(wǎng)格引用,進而選擇基準面。三角面片(V0,V1,V2)上的點可由公式如下表示:T(u,v)=(1-u-v)V0+uV1+vV2則射線與三角面片的交點Rt=O+tD=T(u,v)經(jīng)過整理得方程:[-D,V1-V0,V2-V1]tuv=O-V0]]>令E1=V1-V0,E2=V2-V0,T=O-V0,經(jīng)克拉默法則變化為公式如下:,其中P=D×E2,Q=T×E1,求解公式得到相交結(jié)果。tuv=1D×E2·E1T×E1·E2D×E2·TT×E1·D=1PE1QE2PTQD]]>(7)基準體操縱功能指選取建模空間中CSG樹的體素對象,用以作為操縱或特征方法,通過拾取射線與仿射變換后的OBB包圍盒相交判斷的方法,相交算法如公式所示:|T·L|<Σ|aiAi·L|+Σ|biBi·L|]]>其中T是包圍盒與向量相對位移,L是參考向量,A和B是包圍盒與射線的向量,當如下公式判斷為True時,拾取到具體的體素對象。上述編輯類型的方法子集合包括:(1)擠出編輯功能。擠出功能是在基本體素的某一面結(jié)構(gòu)上構(gòu)建一個擠出體素,并定義擠出特征,然后將基本體素與擠出體通過正則體素布爾并集運算實現(xiàn)的,并將兩個體素加入CSG樹的節(jié)點中。(2)切除編輯功能。切除功能是在基本體素的某一面結(jié)構(gòu)上構(gòu)建一個切除體素,并定義切除特征,然后將基本體素與切除體通過正則體素布爾差集運算實現(xiàn)的,并將兩個體素加入CSG樹的節(jié)點中。(3)掃掠編輯功能。掃掠功能是通過選取一個繪制的二維的正則封閉基準面,然后定義一條掃掠軌跡,使得基準面沿掃掠軌跡生成一個掃掠體素。設(shè)定基準面的方程為r=r(u,v),則一階微分方程為則法向量矢量與等距面方程如公式(3-14)所示:n(u,v)=ru×rv/|ru×rv|r0(u,v)=r(u,v)+dn(u,v)]]>設(shè)曲線r(u)為逆時針方向的環(huán),其正向單位法向量為e2,那么對于弧線r(u)的等距線方程可以描述為如下公式:r0(u)=r(u)+dr(u)×e2|r(u)|.]]>(4)回掃編輯功能?;貟吖δ苁峭ㄟ^選取一個繪制的二維與Z軸構(gòu)成封閉的基準面,使基準面沿Z軸旋轉(zhuǎn)生成一個回掃體素。設(shè)一個二維平面XOY,其法向量為n,將Z軸與直線、曲線、圓弧等在平面XOY上定義的封閉線段組圖形定義為r0(u,v),將該圖形沿Z軸旋轉(zhuǎn),則其得到的回掃體素的表達式為公式如下:r0(u,v)=p(u)cos(v)i+p(u)sin(v)j+Z(u)k。在步驟S3中,在支持多點觸控的觸摸屏上進行單指或多指的手勢交互操作并進行監(jiān)聽,監(jiān)聽方法回調(diào)參數(shù)Motionevent是一個對觸控屏多點觸摸事件進行封裝的對象,包含了手指觸摸屏幕保留的有效信息,比如手指觸控坐標、事件行為類型以及觸摸事件的持續(xù)時間等,該對象會在用戶觸摸手機屏幕時被創(chuàng)建。通過設(shè)置一個int變量mode記錄當前觸摸屏幕的手指數(shù),當有手指按下事件時令mode++,當有手指抬起時令mode--。在不同按下、移動與抬起的不同action事件的事件回調(diào)中,依據(jù)mode變量進行匹配選擇操作,從而對各個action事件中不同手指數(shù)量觸摸的行為進行分別的定義,進而做出識別出相應(yīng)的手勢行為,并通過event對象的getX()與getY()方法獲得各個手指當前事件觸發(fā)時的屏幕坐標。在步驟S4中,在支持多點觸控的觸摸屏上進行單指或多指的手勢交互操作進行識別,調(diào)用識別的手勢行為所映射的三維建模功能,從而實現(xiàn)相應(yīng)的建模操作,然后繼續(xù)監(jiān)聽手勢操作。首先定義4個基本手勢,分別是點擊Click、長按LongClick、按住Press、拖動Drag,通過四個基本手勢的組合,進行復(fù)雜手勢的識別操作,設(shè)計一個多點觸控手勢行為集合,其手勢行為演示圖如圖2所示,集合中復(fù)雜手勢行為及相應(yīng)的映射功能的具體關(guān)系如下:生成類型的繪制手勢行為定義:(1)繪制規(guī)則體素手勢行為定義:先單指點擊Click規(guī)則體素按鈕,選取體素類型,在單指點擊Click在建??臻g上,手指按下的位置P(X,Y)作為體素繪制位置的參數(shù)調(diào)用繪制規(guī)則體素生成方法。(2)繪制直線手勢行為定義:先在繪制基準面平面上單指按住Press,手指位置P(X,Y)作為直線起始點參數(shù),然后在繪制基準面平面上數(shù)次單指拖動Drag,手指位置P(X,Y)不斷更新為直線的終止點參數(shù),并調(diào)用繪制直線生成方法。(3)繪制曲線手勢行為定義:先在繪制基準面平面上單指按住Press,手指位置P(X,Y)作為曲線起始控制點參數(shù),然后在繪制基準面平面上數(shù)次單指拖動Drag,手指位置P(X,Y)不斷更新為曲線的終止控制點參數(shù),并將兩點加入曲線控制點集合作為參數(shù)調(diào)用繪制曲線的方法,再數(shù)次單指拖動Drag操作,每次手指位置P(X,Y)加入貝塞爾曲線的控制點列表中,并調(diào)用繪制曲線生成方法。(4)繪制圓弧手勢行為定義:先在繪制基準面平面上單指按住Press,手指位置P(X,Y)作為橢圓a控制點參數(shù),然后在繪制基準面平面上數(shù)次單指Drag,手指位置P(X,Y)不斷更新為曲線的橢圓b控制點參數(shù),并調(diào)用繪制圓弧的建模方法,再單指點擊Click操作,手指位置P(X,Y)與已知的圓心坐標計算出圓弧的起始角度,最后單指點擊Click操作,手指位置P(X,Y)與已知的圓心坐標計算出圓弧的終止角度,最后再次調(diào)用繪制圓弧生成方法。操縱類型的手勢行為定義:(1)視角旋轉(zhuǎn)及放縮手勢行為定義:對于視角旋轉(zhuǎn)手勢,首先單指按住Press操作,判斷按下位置是否不在任何面或體上,如果是,則繼續(xù),否則退出,再次拖動Drag操作,將手指相對上次位置的橫向相對向量Vx與縱向相對向量Vy記錄相應(yīng)的旋轉(zhuǎn)角度作為參數(shù)調(diào)用視角旋轉(zhuǎn)操縱方法;對于視角放縮手勢,首先三指按住Press操作,判斷按下位置是否不在任何面或體上,如果是,則繼續(xù),否則退出,三指拖動Drag操作,并且三指移動向量V1、V2、V3要互相相反,三指位置P1(X,Y)、P2(X,Y)、P3(X,Y)計算相對按住Press操作時的位置的向量V1、V2、V3,并計算平均值,方向同時設(shè)為三軸,作為參數(shù)調(diào)用視角旋轉(zhuǎn)操縱方法。(2)體素位移及旋轉(zhuǎn)手勢行為定義:對于體素位移手勢,首先雙指按住Press操作,雙指位置P1(X,Y)、P2(X,Y)計算相對位置V1,然后雙指拖動Drag操作,并且判斷是否兩指移動方向V2、V3一致,與按下向量V1平行,再計算雙指位置P1(X,Y)、P2(X,Y)相對按住Press操作時的位置的向量V2、V3,并計算位移量L與方向V,作為參數(shù)調(diào)用體素位移操縱方法;對于體素旋轉(zhuǎn)手勢,首先雙指按住Press操作,雙指位置P1(X,Y)、P2(X,Y)計算相對位置V1,然后雙指拖動Drag操作,并且判斷是否兩指移動方向V2、V3一致,與按下向量V1垂直,再計算雙指位置P1(X,Y)、P2(X,Y)相對按住Press操作時的位置的向量V2、V3,并計算旋轉(zhuǎn)角度a與方向V,作為參數(shù)調(diào)用體素位移操縱方法。(3)體素軸向及整體伸縮手勢行為定義:對于體素軸向伸縮手勢,首先雙指按住Press操作,雙指位置P1(X,Y)、P2(X,Y)計算相對位置V1,然后雙指拖動Drag操作,并且判斷是否兩指移動方向V2、V3相反,與按下向量V1平行,再計算雙指位置P1(X,Y)、P2(X,Y)相對按住Press操作時的位置的向量V2、V3,并計算伸縮量S與方向V,作為參數(shù)調(diào)用體素伸縮操縱方法;對于體素整體伸縮手勢,首先三指按住Press操作,并且三指位置至少一個在物體上,然后三指Drag操作,三指位置P1(X,Y)、P2(X,Y)、P3(X,Y)計算相對按住Press操作時的位置的向量V1、V2、V3,并計算伸縮平均值S,方向同時設(shè)為三軸,作為參數(shù)調(diào)用體素旋轉(zhuǎn)操縱方法。(4)體素復(fù)制手勢行為定義:三指拖動Drag操作,其中三指移動向量保持平行且方向一致,根據(jù)當前基準體作為參數(shù)調(diào)用創(chuàng)建規(guī)則體素生成方法,并根據(jù)三指分別的位置P1(X,Y)、P2(X,Y)、P3(X,Y)計算移動的平均距離S與方向V調(diào)用體素位移操縱方法。(5)體素快速對齊手勢行為定義:先單指按住Press操作在源對齊體素位置上,記錄手指位置P1(X,Y),再單指拖動Drag操作,并從源對齊體素離開,手指位置P2(X,Y)與P1計算相對向量進而判斷源對齊面法向量N1,最后單指拖動Drag操作,從空間中進入被對齊體素,手指位置進入前位置P3(X,Y)與抬起位置P4(X,Y)計算相對向量進而判斷被對齊面法向量N2,將N1、N2作為參數(shù)調(diào)用體素對齊方法。(6)體素基準軸、面、體手勢行為定義:雙指按住Press操作在建??臻g上,雙指位置P1(X,Y)、P2(X,Y)計算相對位置向量V作為參數(shù)調(diào)用基準軸編輯方法。單指點擊Click操作在要選擇的面上,單指位置P(X,Y)作為參數(shù)調(diào)用基準面編輯方法;單指長按LongClick操作在要選擇的體素上,單指位置P(X,Y)作為參數(shù)調(diào)用基準體編輯方法。編輯類型的手勢行為定義:(1)擠出手勢行為定義:先單指點擊Click,手指位置P(X,Y)調(diào)用基準體編輯方法選擇被擠出體,然后雙指按住Press,其中一指按在源體素上,按在源體素的手指位置P(X,Y)調(diào)用基準體編輯方法,再一指按住Press不動,另一指做Drag操作,并且位移向量向外,將源體素引用與被擠出體素引用作為參數(shù)調(diào)用擠出編輯方法。(2)切除手勢行為定義:先單指點擊Click,手指位置P(X,Y)調(diào)用基準體編輯方法選擇被擠出體,然后雙指按住Press,其中一指按在源體素上,按在源體素的手指位置P(X,Y)調(diào)用基準體編輯方法,再一指按住Press不動,另一指做拖動Drag操作,并且位移向量向內(nèi),將源體素引用與被擠出體素引用作為參數(shù)調(diào)用擠出編輯方法。(3)掃掠手勢行為定義:先單指點擊Click,手指位置P(X,Y)調(diào)用基準面編輯方法選擇掃掠面,再單指拖動Drag,繪制掃掠軌跡,根據(jù)基準面和掃掠軌跡調(diào)用掃掠編輯方法生成掃掠體素。(4)回掃手勢行為定義:先單指點擊Click,手指位置P(X,Y)調(diào)用基準面編輯方法選擇回掃面,根據(jù)基準面調(diào)用回掃編輯方法生成回掃體素。綜上所述,該發(fā)明公開的多點觸控手勢交互三維建模方法適用于市面上絕大部分的支持多點觸控的移動設(shè)備,技術(shù)上具有跨平臺的優(yōu)勢,該方案可方便應(yīng)用于構(gòu)建一個三維建模移動應(yīng)用;針對其他三維建模交互技術(shù)操作繁瑣、學(xué)習(xí)成本高的缺陷,本發(fā)明通過設(shè)定基本手勢行為,以組合的方式簡化手勢操作的步驟,并通過圖形化方式將交互軌跡顯示在用戶界面上,以降低用戶的學(xué)習(xí)成本;針對其他技術(shù)定義的方法種類較少,無法應(yīng)對復(fù)雜形體建模的情況,本發(fā)明通過定義了一個包含模型繪制生成、視角自由漫游,模型幾何操縱,編輯特征方法等三維建?;竟δ芗鲜沟糜脩艨梢酝ㄟ^一系列基本建模操作完成復(fù)雜三維模型的簡歷,并分別映射其手勢交互方式,通過手勢識別加以嚴格區(qū)分,使得用戶可以完全通過手勢快速的建立復(fù)雜三維形體;對比基于多點觸控手勢交互界面(Multi-touchuserinterface,MTUI)和傳統(tǒng)的基于按鈕交互界面(Button-baseduserinterface,BUI)的3D建模的三個測試時間,總建模時間結(jié)果如圖3(a)所示,總交互次數(shù)結(jié)果如圖3(b)所示,其中數(shù)據(jù)如下:-Test1.利用本發(fā)明進行“扳手”模型建模測試,示例如圖4(a)所示本發(fā)明:平均完成時間16.5s,平均交互次數(shù)12.5。傳統(tǒng)技術(shù):平均完成時間26.6s,平均交互次數(shù)12.9。-Test2.利用本發(fā)明進行“餐桌”模型建模測試,示例如圖4(b)所示本發(fā)明:平均完成時間10.1s,平均交互次數(shù)5.8。傳統(tǒng)技術(shù):平均完成時間21.6s,平均交互次數(shù)10.7。-Test3.利用本發(fā)明進行“飛機”模型建模測試,示例如圖4(c)所示本發(fā)明:平均完成時間16.5s,平均交互次數(shù)24.9。傳統(tǒng)技術(shù):平均完成時間34.8s,平均交互次數(shù)17.3。由數(shù)據(jù)得出,相比傳統(tǒng)的BUI的交互,本發(fā)明在完成時間與交互次數(shù)上具有顯著的優(yōu)勢,可大量減少用戶同種模型建模花費的時間,提高用戶的工作效率。并且各模塊功能使用時間如圖3(c)所示,交互次數(shù)如圖3(d)所示,可得在不同測試示例中,對于三維建模各個功能的效率都有較為明顯的提升;使用本發(fā)明進行三維建模測試示例結(jié)果如圖4(a)、圖4(b)、圖4(c)所示,證明本發(fā)明可有效通過一系列組合的手勢及建模操作完成對復(fù)雜三維模型的建立,具備實施的可行性。上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。當前第1頁1 2 3 
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
乌拉特后旗| 拉萨市| 高雄县| 潞西市| 民和| 清涧县| 柘城县| 桓台县| 石楼县| 隆安县| 乌恰县| 阿勒泰市| 桃源县| 丘北县| 天等县| 资阳市| 阿坝| 阳东县| 文昌市| 昔阳县| 乐清市| 栾城县| 盐源县| 化隆| 长治市| 北碚区| 手机| 永城市| 尼玛县| 定安县| 临邑县| 阳江市| 翁源县| 靖安县| 望都县| 砀山县| 武义县| 邵阳市| 永善县| 柳江县| 宁津县|