一種控制3d模型旋轉(zhuǎn)的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種控制3D模型旋轉(zhuǎn)的方法及裝置,用以將平面二維坐標(biāo)轉(zhuǎn)換為三維立體坐標(biāo),從而易于控制對3D模型的旋轉(zhuǎn)操作。所述方法包括:獲取3D模型數(shù)據(jù),顯示所述3D模型;檢測到使用者沿某一方向滑動所述3D模型,獲取滑動所產(chǎn)生的平面坐標(biāo)值;將所述滑動所產(chǎn)生的平面坐標(biāo)值轉(zhuǎn)化為3D模型的空間坐標(biāo)值;根據(jù)空間坐標(biāo)值的變化,控制3D模型的旋轉(zhuǎn)。通過計算模型在空間坐標(biāo)系中的位置及大小,獲取到模型所在圓的方程式,在鼠標(biāo)或者計算機觸筆等其他計算機輸入設(shè)備對模型進行操作時,將桌面坐標(biāo)平面坐標(biāo)處理為世界坐標(biāo),鼠標(biāo)操作行為,進行旋轉(zhuǎn)模型,實現(xiàn)了對模型旋轉(zhuǎn)的靈活控制。
【專利說明】一種控制3D模型旋轉(zhuǎn)的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像顯示【技術(shù)領(lǐng)域】,特別是涉及一種控制3D模型旋轉(zhuǎn)的方法及裝置。
【背景技術(shù)】
[0002]隨著技術(shù)的不斷發(fā)展,越來越多的3D技術(shù)開始進入人們的生活。3D技術(shù)通過計算機等電子設(shè)備上實現(xiàn)在平面上展現(xiàn)物體的三個維度(長寬高)的三維數(shù)字化技術(shù),將圖像以3D方式呈現(xiàn)給用戶欣賞。
[0003]3D模型可基于圖像構(gòu)建,通過提供一組物體不同角度的序列照片在計算機輔助下即可自動生成物體的3D模型。
[0004]因此,通過對這些不同角度的序列照片的處理,將最終的3D模型顯示在屏幕上。
[0005]當(dāng)以二維坐標(biāo)顯示的3D模型旋3D模型是,轉(zhuǎn)時,其在立體空間的坐標(biāo)發(fā)生變化,由于3D模型技術(shù)中,缺少模型的坐標(biāo)轉(zhuǎn)換方式,因此,不能夠?qū)崿F(xiàn)靈活自如的控制對3D模型的旋轉(zhuǎn)操作。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供一種用于3D模型的坐標(biāo)轉(zhuǎn)換方法及裝置,用以將平面二維坐標(biāo)轉(zhuǎn)換為三維立體坐標(biāo),從而易于控制對3D模型的旋轉(zhuǎn)操作。
[0007]本發(fā)明提供一種控制3D模型旋轉(zhuǎn)的方法,包括:獲取3D模型數(shù)據(jù),顯示所述3D模型;檢測到使用者沿某一方向滑動所述3D模型,獲取滑動所產(chǎn)生的平面坐標(biāo)值;將所述滑動所產(chǎn)生的平面坐標(biāo)值轉(zhuǎn)化為3D模型的空間坐標(biāo)值;根據(jù)空間坐標(biāo)值的變化,控制3D模型的旋轉(zhuǎn)。
[0008]其中,將所述滑動所產(chǎn)生的平面坐標(biāo)值轉(zhuǎn)化為3D模型的空間坐標(biāo)值,包括:確定所述3D模型在空間坐標(biāo)系所處的中心圓;將所述3D模型沿所述中心圓切開,向兩側(cè)展成平面形成所述3D模型的展開平面,所述3D模型的非可視部分對應(yīng)所述展開平面的左右外側(cè);根據(jù)所述滑動所產(chǎn)生的平面坐標(biāo)值與所述展開平面的位置關(guān)系,將所述平面坐標(biāo)值轉(zhuǎn)換為空間坐標(biāo)值。
[0009]其中,確定所述3D模型在空間坐標(biāo)系所處的中心圓,包括:對所述3D模型數(shù)據(jù)進行遍歷;確定出所述3D模型上起始點和中心點;將所述起始點作為所處的中心圓的圓心,所述起始點和中心點的距離作為半徑。
[0010]其中,根據(jù)空間坐標(biāo)值的變化,控制3D模型的旋轉(zhuǎn),包括:將所述滑動產(chǎn)生的相應(yīng)的空間坐標(biāo)值分別與圓心做空間向量,并求出所述空間向量的法向量,以得到兩個向量之間的夾角;根據(jù)所述夾角,旋轉(zhuǎn)所述3D模型。
[0011]其中,根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)值與所述展開平面的位置關(guān)系,將所述平面坐標(biāo)值轉(zhuǎn)換為空間坐標(biāo)值,包括:根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)系內(nèi)的每一個X坐標(biāo)值位于所述展開平面的區(qū)域,將其轉(zhuǎn)換為相應(yīng)的空間坐標(biāo)系的X坐標(biāo)值;根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)系內(nèi)的每一個Y坐標(biāo)值位于所述展開平面的區(qū)域,轉(zhuǎn)換為相應(yīng)的空間坐標(biāo)系的Y坐標(biāo)值;利用中心圓的方程式以及空間坐標(biāo)系的X坐標(biāo)值和空間坐標(biāo)系的Y坐標(biāo)值,求得利用空間坐標(biāo)系的Z值。
[0012]其中,所處中心圓的方程式為(x-a)2+ (γ-b)2+ (Z-C)2 = R2其中,X,Y,Z坐標(biāo)值的點位于所述3D模型上,a, b, c為常數(shù),a, b, c為圓點的空間坐標(biāo)值,R為半徑。
[0013]本發(fā)明還提供一種控制3D模型旋轉(zhuǎn)的裝置,包括:數(shù)據(jù)獲取模塊,用于獲取3D模型數(shù)據(jù),顯示所述3D模型;滑動檢測模塊,用于檢測到使用者沿某一方向滑動所述3D模型,獲取滑動所產(chǎn)生的平面坐標(biāo)值;坐標(biāo)轉(zhuǎn)換模塊,用于將所述滑動所產(chǎn)生的平面坐標(biāo)值轉(zhuǎn)化為3D模型的空間坐標(biāo)值;旋轉(zhuǎn)模塊,用于根據(jù)空間坐標(biāo)值的變化,控制3D模型的旋轉(zhuǎn)。
[0014]其中,所述坐標(biāo)轉(zhuǎn)換模塊包括:中心圓確定單元,用于確定所述3D模型在空間坐標(biāo)系所處的中心圓;展開單元,用于將所述3D模型沿所述中心圓切開,向兩側(cè)展成平面形成所述3D模型的展開平面,所述3D模型的非可視部分對應(yīng)所述展開平面的左右外側(cè);轉(zhuǎn)換單元,用于根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)值與所述展開平面的位置關(guān)系,將所述平面坐標(biāo)值轉(zhuǎn)換為空間坐標(biāo)值。
[0015]其中,所述轉(zhuǎn)換單元還用于根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)系內(nèi)的每一個X坐標(biāo)值位于所述展開平面的區(qū)域,將其轉(zhuǎn)換為相應(yīng)的空間坐標(biāo)系的X坐標(biāo)值;
[0016]根據(jù)所述滑動所產(chǎn)生的平面坐標(biāo)系內(nèi)的每一個Y坐標(biāo)值位于所述展開平面的區(qū)域,轉(zhuǎn)換為相應(yīng)的空間坐標(biāo)系的Y坐標(biāo)值;
[0017]利用中心圓的方程式以及空間坐標(biāo)系的X坐標(biāo)值和空間坐標(biāo)系的Y坐標(biāo)值,求得利用空間坐標(biāo)系的Z值。
[0018]其中,所述旋轉(zhuǎn)模塊包括:變化單元,用于將所述滑動所產(chǎn)生的相應(yīng)的空間坐標(biāo)值分別與圓心做空間向量,并求出所述空間向量的法向量,以得到兩個向量之間的夾角;
[0019]旋轉(zhuǎn)單元,用于根據(jù)所述夾角,旋轉(zhuǎn)所述3D模型。
[0020]本發(fā)明通過計算模型在世界坐標(biāo)系(空間坐標(biāo)系)中的位置及大小,確定模型所在圓的圓心,然后獲取到模型所在圓的方程式,在鼠標(biāo)或者計算機觸筆等其他計算機輸入設(shè)備對模型進行操作時,將桌面坐標(biāo)(平面坐標(biāo))處理為世界坐標(biāo),鼠標(biāo)操作行為,進行旋轉(zhuǎn)模型,實現(xiàn)了對模型旋轉(zhuǎn)的靈活控制。
[0021]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
[0022]下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細(xì)描述。
【專利附圖】
【附圖說明】
[0023]附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0024]圖1為本發(fā)明實施例提供的一種控制3D模型旋轉(zhuǎn)的方法的流程示意圖;
[0025]圖2為圖1所示實施例提供的一具體流程示意圖;
[0026]圖3為圖1實施例中將3D模型展開形成展開平面的示例圖;
[0027]圖4為圖1實施例中將平面坐標(biāo)的X值轉(zhuǎn)換為空間坐標(biāo)的X值的示例圖;
[0028]圖5為本發(fā)明實施例提供的一種控制3D模型旋轉(zhuǎn)的裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0029]以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0030]本發(fā)明提供的一種控制3D模型旋轉(zhuǎn)的方法,參見圖1和圖2,包括以下步驟:
[0031]SlOl:獲取3D模型數(shù)據(jù),顯示所述3D模型;
[0032]獲取3D模型數(shù)據(jù),顯示所述3D模型,所述3D模型顯示在空間坐標(biāo)系內(nèi)。
[0033]S102:檢測到使用者沿某一方向滑動所述3D模型,獲取滑動所產(chǎn)生的平面坐標(biāo)值;
[0034]3D模型顯示在顯示屏幕上,此時可通過顯示屏幕上的二維空間內(nèi)的操作,控制3D模型的旋轉(zhuǎn)方式。
[0035]優(yōu)選地,確定所述3D模型在空間坐標(biāo)系所處的中心圓;將所述中心圓展成平面形成3D模型平面坐標(biāo)系。
[0036]獲取到3D模型數(shù)據(jù)后,對3D模型數(shù)據(jù)進行遍歷后計算出模型數(shù)據(jù)的起始空間坐標(biāo)(世界坐標(biāo))和在空間坐標(biāo)(世界坐標(biāo))中的長、寬及高;分別計算出X、Y、Z軸上起始點與其方向上長度值一半的和,就是此3D模型的中心點,也就是3D模型所在圓的圓心,圓心到起始點的距離就是圓的半徑,從而確定了 3D模型所在中心圓的方程;通過將3D模型從非可視面方向,沿所在中心圓將3D模型展成平面后形成3D模型的展開平面,參見圖3的A和B兩部分。
[0037]通過將3D模型展開形成展開平面,從而可以使平面上的鼠標(biāo)移動,通過展開平面,對應(yīng)到3D模型的空間坐標(biāo)上。實現(xiàn)平面坐標(biāo)值向空間坐標(biāo)值的轉(zhuǎn)換。
[0038]參見圖3的A,以球形3D模型為示例,將球形分成四部分,第4部分為觀察者非可視部分,將3D模型以圓2從非可視部分4展開,如B所示,由此將展開平面平分為四部分,部分1,部分2,部分3和部分4。
[0039]圓2的方程式為(X-a)2+ (Y_b)2+ (Z_c)2= R2其中,X,Y,Z坐標(biāo)值的點位于所述3D模型上,a,b, c為常數(shù),a,b, c為圓點的空間坐標(biāo)值,R為半徑。
[0040]由此可以得出,平面坐標(biāo)系的Y軸值通過展開平面對應(yīng)空間坐標(biāo)的Y軸值的從最小值到最大值是這樣規(guī)定的:
[0041]中心圓縱向最高點到中心圓縱向最低點,即桌面Y軸最小值是圓中Y軸的最大值,桌面Y軸最大值是圓中Y軸的最小值。
[0042]所述平面坐標(biāo)系的X軸從最小值到最大值的逐步變化的過程是:桌面上X軸從最小值到最大值是從圓心X值到最小值(部分4-1),再到圓心X值(部分1-2),再到最大值(部分2-3),再到圓心X值(部分3-4)。
[0043]S103:檢測到使用者在平面坐標(biāo)系沿某一方向滑動所述3D模型;
[0044]獲取到3D模型數(shù)據(jù)后顯示在桌面坐標(biāo)系上,鼠標(biāo)點擊3D模型,并且在鼠標(biāo)按下的時候移動鼠標(biāo),使3D模型根據(jù)鼠標(biāo)的移動而轉(zhuǎn)動。
[0045]S104:將所述滑動轉(zhuǎn)化為3D模型的空間坐標(biāo)變化;
[0046]將鼠標(biāo)按下的坐標(biāo)值分解為X和Y軸上的值,根據(jù)上述的模擬方式,XY坐標(biāo)所占世界(空間)坐標(biāo)系中所占的比例,即,XY坐標(biāo)位于世界(空間)坐標(biāo)系中哪一部分,計算出鼠標(biāo)按下值對應(yīng)世界坐標(biāo)系XY坐標(biāo),再由圓的方程計算Z的值,如果此點不在圓上,將不能獲取到Z值,和丟棄此點不進行后續(xù)處理;如果求得兩個Z值,當(dāng)處于桌面X軸O到1/4處和3/4到最大值時,取所求Z中較小值;否則取較大值;記錄此點。
[0047]假設(shè)顯示區(qū)域是100像素,球半徑(假設(shè)球圓心0,0,0)為10,那么顯示區(qū)域的0-100就是空間中O到-10到O到10到O的過程。
[0048]假設(shè)落到部分4到1,那么鼠標(biāo)點擊的X必定是0-25之間,假設(shè)是10,那么空間中位置的 Xl 是((-10) X 10/25),參見圖 4,即,ABCDX,都知道,求 XI,AB/CD = AX/CX1。
[0049]同理,假如屏幕100像素,Y就是-50,0,+50,假設(shè)顯示區(qū)域是0_50,假如Y為10的話,對應(yīng)空間中0-100,那么Yl為1X (10-0)/50。
[0050]利用圓的方程(X-a)2+(Y_b)2+(Z-c)2=R2求得 Z1。
[0051]以此類推,將鼠標(biāo)滑動的每個點的平面坐標(biāo)值轉(zhuǎn)換為對應(yīng)的空間坐標(biāo)點的坐標(biāo)值。
[0052]S105:根據(jù)空間坐標(biāo)的變化,控制3D模型的旋轉(zhuǎn)。
[0053]優(yōu)選地,將所述滑動在平面坐標(biāo)系引起的坐標(biāo)變化轉(zhuǎn)變?yōu)榭臻g坐標(biāo)的變化;將空間坐標(biāo)的變化轉(zhuǎn)變?yōu)樾D(zhuǎn)角度的變化。
[0054]按下鼠標(biāo)移動,移動的過程中不斷的將鼠標(biāo)點像處理按下點一樣轉(zhuǎn)換為世界坐標(biāo)系中的點,
[0055]將當(dāng)前世界坐標(biāo)系中點和上一個世界坐標(biāo)系中的點分別與圓心做差,求得兩個點的空間向量,將兩個空間向量差乘求得兩個向量的法向量,再求得兩個向量之間的夾角,如果3D模型已經(jīng)旋轉(zhuǎn),則對法向量進行同樣的旋轉(zhuǎn);對3D模型圍繞求得的法向量按照右手法則進行旋轉(zhuǎn)求得的角度。
[0056]在鼠標(biāo)移動的過程中,按求得的角度,不斷的旋轉(zhuǎn)3D模型,鼠標(biāo)彈起后停止對3D模型的旋轉(zhuǎn),就完成了對3D模型的控制。
[0057]本發(fā)明提供的一種控制3D模型旋轉(zhuǎn)的方法,通過計算模型在世界坐標(biāo)系(空間坐標(biāo)系)中的位置及大小,確定模型所在圓的圓心,然后獲取到模型所在圓的方程式,在鼠標(biāo)或者計算機觸筆等其他計算機輸入設(shè)備對模型進行操作時,將桌面坐標(biāo)(平面坐標(biāo))處理為世界坐標(biāo),鼠標(biāo)操作行為,進行旋轉(zhuǎn)模型,實現(xiàn)了對模型旋轉(zhuǎn)的靈活控制。
[0058]本發(fā)明提供的一種控制3D模型旋轉(zhuǎn)的裝置,參見圖5,包括:
[0059]數(shù)據(jù)獲取模塊51,用于獲取3D模型數(shù)據(jù),顯示所述3D模型;
[0060]滑動檢測模塊52,用于檢測到使用者沿某一方向滑動所述3D模型,獲取滑動所產(chǎn)生的平面坐標(biāo)值;
[0061]坐標(biāo)轉(zhuǎn)換模塊53,用于將所述滑動所產(chǎn)生的平面坐標(biāo)值轉(zhuǎn)化為3D模型的空間坐標(biāo)值;
[0062]旋轉(zhuǎn)模塊54,用于根據(jù)空間坐標(biāo)值的變化,控制3D模型的旋轉(zhuǎn)。
[0063]優(yōu)選地,坐標(biāo)轉(zhuǎn)換模塊53包括:
[0064]中心圓確定單元,用于確定所述3D模型在空間坐標(biāo)系所處的中心圓;
[0065]展開單元,用于將所述3D模型沿所述中心圓切開,向兩側(cè)展成平面形成所述3D模型的展開平面,所述3D模型的非可視部分對應(yīng)所述展開平面的左右外側(cè);
[0066]轉(zhuǎn)換單元,用于根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)值與所述展開平面的位置關(guān)系,將所述平面坐標(biāo)值轉(zhuǎn)換為空間坐標(biāo)值。
[0067]優(yōu)選地,所述轉(zhuǎn)換單元還用于根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)系內(nèi)的每一個X坐標(biāo)值位于所述展開平面的區(qū)域,將其轉(zhuǎn)換為相應(yīng)的空間坐標(biāo)系的X坐標(biāo)值;
[0068]根據(jù)所述滑動所產(chǎn)生的平面坐標(biāo)系內(nèi)的每一個Y坐標(biāo)值位于所述展開平面的區(qū)域,轉(zhuǎn)換為相應(yīng)的空間坐標(biāo)系的Y坐標(biāo)值;
[0069]利用中心圓的方程式以及空間坐標(biāo)系的X坐標(biāo)值和空間坐標(biāo)系的Y坐標(biāo)值,求得利用空間坐標(biāo)系的Z值。
[0070]優(yōu)選地,所述旋轉(zhuǎn)模塊包括:變化單元,用于將所述滑動所產(chǎn)生的相應(yīng)的空間坐標(biāo)值分別與圓心做空間向量,并求出所述空間向量的法向量,以得到兩個向量之間的夾角;
[0071]旋轉(zhuǎn)單元,用于根據(jù)所述夾角,旋轉(zhuǎn)所述3D模型。
[0072]本實施例提供的上述裝置可以執(zhí)行上述方法實施例中提供的方法,詳細(xì)過程見方法實施例中的描述,此處不贅述。
[0073]本發(fā)明提供的一種控制3D模型旋轉(zhuǎn)的裝置,通過計算模型在世界坐標(biāo)系(空間坐標(biāo)系)中的位置及大小,確定模型所在圓的圓心,然后獲取到模型所在圓的方程式,在鼠標(biāo)或者計算機觸筆等其他計算機輸入設(shè)備對模型進行操作時,將桌面坐標(biāo)(平面坐標(biāo))處理為世界坐標(biāo),鼠標(biāo)操作行為,進行旋轉(zhuǎn)模型,實現(xiàn)了對模型旋轉(zhuǎn)的靈活控制。
[0074]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0075]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0076]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0077]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0078]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種控制3D模型旋轉(zhuǎn)的方法,其特征在于,包括: 獲取3D模型數(shù)據(jù),顯示所述3D模型; 檢測到使用者沿某一方向滑動所述3D模型,獲取滑動所產(chǎn)生的平面坐標(biāo)值; 將所述滑動所產(chǎn)生的平面坐標(biāo)值轉(zhuǎn)化為3D模型的空間坐標(biāo)值; 根據(jù)空間坐標(biāo)值的變化,控制3D模型的旋轉(zhuǎn)。
2.如權(quán)利要求1所述的方法,其特征在于,將所述滑動所產(chǎn)生的平面坐標(biāo)值轉(zhuǎn)化為3D模型的空間坐標(biāo)值,包括: 確定所述3D模型在空間坐標(biāo)系所處的中心圓; 將所述3D模型沿所述中心圓切開,向兩側(cè)展成平面形成所述3D模型的展開平面,所述3D模型的非可視部分對應(yīng)所述展開平面的左右外側(cè); 根據(jù)所述滑動所產(chǎn)生的平面坐標(biāo)值與所述展開平面的位置關(guān)系,將所述平面坐標(biāo)值轉(zhuǎn)換為空間坐標(biāo)值。
3.如權(quán)利要求2所述的方法,其特征在于,確定所述3D模型在空間坐標(biāo)系所處的中心圓,包括: 對所述3D模型數(shù)據(jù)進行遍歷, 確定出所述3D模型上起始點和中心點; 將所述起始點作為所處的中心圓的圓心,所述起始點和中心點的距離作為半徑。
4.如權(quán)利要求3所述的方法,其特征在于,根據(jù)空間坐標(biāo)值的變化,控制3D模型的旋轉(zhuǎn),包括: 將所述滑動產(chǎn)生的相應(yīng)的空間坐標(biāo)值分別與圓心做空間向量,并求出所述空間向量的法向量以得到兩個向量之間的夾角; 根據(jù)所述夾角,旋轉(zhuǎn)所述3D模型。
5.如權(quán)利要求2所述的方法,其特征在于,所處中心圓的方程式為(X-a)2+(Y-b)2+(Z-c)2= R 2其中,X,Y,Z坐標(biāo)值的點位于所述3D模型上,a,b,c為常數(shù),a,b, c為圓點的空間坐標(biāo)值,R為半徑。
6.如權(quán)利要求5所述的方法,其特征在于,根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)值與所述展開平面的位置關(guān)系,將所述平面坐標(biāo)值轉(zhuǎn)換為空間坐標(biāo)值,包括: 根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)系內(nèi)的每一個X坐標(biāo)值位于所述展開平面的區(qū)域,將其轉(zhuǎn)換為相應(yīng)的空間坐標(biāo)系的X坐標(biāo)值 根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)系內(nèi)的每一個Y坐標(biāo)值位于所述展開平面的區(qū)域,轉(zhuǎn)換為相應(yīng)的空間坐標(biāo)系的Y坐標(biāo)值; 利用中心圓的方程式以及空間坐標(biāo)系的X坐標(biāo)值和空間坐標(biāo)系的Y坐標(biāo)值,求得利用空間坐標(biāo)系的Z值。
7.一種控制3D模型旋轉(zhuǎn)的裝置,其特征在于,包括: 數(shù)據(jù)獲取模塊,用于獲取3D模型數(shù)據(jù),顯示所述3D模型; 滑動檢測模塊,用于檢測到使用者沿某一方向滑動所述3D模型,獲取滑動所產(chǎn)生的平面坐標(biāo)值; 坐標(biāo)轉(zhuǎn)換模塊,用于將所述滑動所產(chǎn)生的平面坐標(biāo)值轉(zhuǎn)化為3D模型的空間坐標(biāo)值; 旋轉(zhuǎn)模塊,用于根據(jù)空間坐標(biāo)值的變化,控制3D模型的旋轉(zhuǎn)。
8.如權(quán)利要求7所述的裝置,其特征在于,所述坐標(biāo)轉(zhuǎn)換模塊包括: 中心圓確定單元,用于確定所述3D模型在空間坐標(biāo)系所處的中心圓; 展開單元,用于將所述3D模型沿所述中心圓切開,向兩側(cè)展成平面形成所述3D模型的展開平面,所述3D模型的非可視部分對應(yīng)所述展開平面的左右外側(cè); 轉(zhuǎn)換單元,用于根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)值與所述展開平面的位置關(guān)系,將所述平面坐標(biāo)值轉(zhuǎn)換為空間坐標(biāo)值。
9.如權(quán)利要求7所述的裝置,其特征在于,所述轉(zhuǎn)換單元還用于 根據(jù)所述滑動產(chǎn)生的平面坐標(biāo)系內(nèi)的每一個X坐標(biāo)值位于所述展開平面的區(qū)域,將其轉(zhuǎn)換為相應(yīng)的空間坐標(biāo)系的X坐標(biāo)值; 根據(jù)所述滑動所產(chǎn)生的平面坐標(biāo)系內(nèi)的每一個Y坐標(biāo)值位于所述展開平面的區(qū)域,轉(zhuǎn)換為相應(yīng)的空間坐標(biāo)系的Y坐標(biāo)值; 利用中心圓的方程式以及空間坐標(biāo)系的X坐標(biāo)值和空間坐標(biāo)系的Y坐標(biāo)值,求得利用空間坐標(biāo)系的Z值。
10.如權(quán)利要求7所述的裝置,其特征在于,所述旋轉(zhuǎn)模塊包括: 變化單元,用于將所述滑動所產(chǎn)生的相應(yīng)的空間坐標(biāo)值分別與圓心做空間向量,并求出所述空間向量的法向量,以得到兩個向量之間的夾角; 旋轉(zhuǎn)單元,用于根據(jù)所述夾角,旋轉(zhuǎn)所述3D模型。
【文檔編號】G06T19/20GK104504761SQ201410777909
【公開日】2015年4月8日 申請日期:2014年12月15日 優(yōu)先權(quán)日:2014年12月15日
【發(fā)明者】楊金偉 申請人:天脈聚源(北京)科技有限公司