[發明專利]一種改進的坐標軸方向突變下的三維模型變形方法無效
| 申請號: | 201010216621.5 | 申請日: | 2010-07-02 |
| 公開(公告)號: | CN101872490A | 公開(公告)日: | 2010-10-27 |
| 發明(設計)人: | 陳宇峰;郝云生;李立杰;李鳳霞;張姮 | 申請(專利權)人: | 北京理工大學 |
| 主分類號: | G06T15/00 | 分類號: | G06T15/00 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100081 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 改進 坐標軸 方向 突變 三維 模型 變形 方法 | ||
1.一種改進的坐標軸方向突變下的三維模型變形方法,所述三維模型的骨骼結構為:關節點A和O連接成骨骼OA,關節點B和O連接成骨骼OB,骨骼OA和骨骼OB位于三維模型的中軸附近;其特征在于,包括如下步驟:
(1)在三維模型表面網格上關節點O附近選擇兩個頂點P1、P2,作為優選,應當使平面OP1P2與骨骼OA和骨骼OB各自的夾角大致相等;
(2)根據如下方法獲得平面OP1P2的方程系數,
①計算三維向量其中×表示向量的叉乘;
②n=n′/|n′|,變量s=-n·μo;其中μo表示關節點O在世界坐標系中的坐標的向量表示;·表示向量的點乘;
③V=[n,s];V存儲了平面OP1P2的方程的四個系數;
(3)對三維模型的每一個三角形網格,判斷其網格頂點與平面OP1P2的關系,若網格的所有頂點都與關節點A在平面OP1P2的同一側,則判定該三角形網格屬于骨骼OA,否則判定該三角形網格屬于骨骼OB;若原始模型中不是全部由三角形網格構成的,則需要在判斷前將非三角形網格看作多個三角形組成;
(4)使用如下方法計算三維模型對應的局部坐標系到世界坐標系的變換矩陣F1:
F1為4×4矩陣,
其中上標T表示矩陣轉置操作,
并且,向量向量γ1=γ1′/|γ1′|,向量α1=β1×γ1;
(5)使用如下方法計算三維模型每一個網格頂點的局部坐標:
三維模型中網格頂點P的局部坐標為μP′=μP·F1-T,其中μP表示頂點P在世界坐標系中的坐標的向量表示,上標-T表示先對矩陣進行轉置操作再對結果求逆矩陣;
(6)關節點B的局部坐標μB′=μB·F1-T,其中μB表示關節點B在世界坐標系中的坐標的向量表示;
(7)根據如下方法將三維模型劃分成變形區、過渡區和非變形區,
①設定變形區網格頂點與關節點O構成的向量在骨骼OA和骨骼OB上的最大投影值d;
②設定非變形區網格頂點與關節點O構成的向量在骨骼OA上的最小投影值L1,以及在骨骼OB上的最小投影值L2;設置時應保證d小于L1,L2之中的最小值;
③在三維模型中,對屬于骨骼OA的每一個網格頂點,將其在步驟(5)中獲得的局部坐標寫為P=(x,y,z),若y小于d,則判定該頂點屬于變形區;若y大于L1,則判定該頂點屬于非變形區;若y大于等于d且小于等于L1,則判定該頂點屬于過渡區;
④在三維模型中,對屬于骨骼OB的每一個網格頂點,用μP′表示該頂點的局部坐標,計算lP=μP′·μB′/|μB′|,若lP小于d,則判定該頂點屬于變形區;若lP大于L2,則判定該頂點屬于非變形區;若lP大于等于d且小于等于L2,則判定該頂點屬于過渡區;
(8)根據如下方法計算三維模型每一個網格頂點與關節點O構成的向量在對應的骨骼上的投影值,
①對于三維模型內屬于骨骼OA的每一個網格頂點,該網格頂點與關節點O構成的向量在骨骼OA上的投影值等于y,y來自該網格頂點的局部坐標P=(x,y,z);
②對于三維模型內屬于骨骼OB的每一個網格頂點,該網格頂點與關節點O構成的向量在骨骼OB上的投影值為P2·μB′/|μB′|,其中P2為該網格頂點局部坐標;
(9)三維模型的每個網格頂點對應的圓弧曲線的圓心局部坐標O′=(d/cos(υ))·γ,圓心角θ=π-υ×2,點O′到骨骼OA的距離r=d·tan(υ),其中γ=γ′/|γ′|,γ′=(α+b)/2,υ=arccos(α·b)/2,而α=μB′/|μB′|,b=(0,1,0);
(10)對于三維模型變形區的每一個網格頂點,該頂點對應的t值該頂點在對應圓弧曲線上的位置參數ratio值其中P′為該頂點在平面AOB上的投影點的局部坐標,該頂點的局部坐標寫為P=(x,y,z),則P′=(x,y,0),向量χ=(-1,0,0);獲取所有t值中的最大值tMAX和最小值tMIN;
(11)根據如下方法計算三維模型過渡區中每一個網格頂點對應的t值,
①對于三維模型過渡區中屬于骨骼OA的每一個網格頂點,該頂點對應的t值為-x,其中該網格頂點的局部坐標為P1=(x,y,z);
②對于三維模型過渡區中屬于骨骼OB的每一個網格頂點,該頂點對應的t值為其中P2′為該頂點在平面AOB上的投影點的局部坐標,該網格頂點的局部坐標為P2=(x,y,z),則P2′=(x,y,0),點C坐標為d·α;
(12)使用如下方法計算三維模型的變形區域的頂點在彎曲變形后的局部坐標,其中彎曲變形角度為w2,
①若θ+w2<0,此時,局部模型對應的局部坐標系在變形后會發生坐標軸方向突變,若θ+w2<0,則變形后的圓心角θ′=-(θ+w2),否則θ′=θ+w2,若θ+w2<0且|θ′|=|θ|,則三維模型中在變形過程中長度保持不變的圓弧對應t值tC=-(tMAX+tMIN)/2,否則,tC=d·[θcot(θ/2)-θ′cot(θ′/2)]/(θ′-θ);
②變形后三維模型的變形區中所有網格頂點的t值中的最小值t′MIN=tC-tm,其中tm=(tMAX-tMIN)/2;
③若tC+tm<[d/sin(θ′/2)]·[1-cos(θ′/2)],則變形后三維模型的變形區中所有網格頂點的t值中的最大值t′MAX=[d/sin(θ′/2)]·[1-cos(θ′/2)],否則t′MAX=tC+tm;
④變形后三維模型的每個網格頂點對應的圓弧曲線的圓心局部坐標O″=(x0,y0,0),其中x0=d·cot(θ′/2),y0=d,圓弧曲線的半徑r′=x;
⑤對于三維模型變形區的每一個網格頂點,該網格頂點變形前局部坐標寫為P=(x,y,z),從步驟(10)的計算結果中獲得該頂點的t值t1,若θ+w2<0,該頂點變形后的t值t2=t′MAX-(t′MAX-t′MIN)·(t1-tMIN)/(tMAX-tMIN),否則,t2=t′MIN+(t′MAX-t′MIN)·(t1-tMIN)/(tMAX-tMIN),從步驟(10)的計算結果中獲得該頂點的ratio值τ,該頂點變形后的局部坐標P′=(x′,y′,z′),其中x′=x0+(r′+t2)·cos(π+θ′·τ),y′=y0+(r′+t2)·sin(π+θ′·τ),若θ+w2<0,z′=-z,否則,z′=z;
(13)使用如下方法計算三維模型的過渡區域的頂點在彎曲變形后的局部坐標,其中彎曲變形角度為w2,
①對于三維模型過渡區域內屬于骨骼OA的每一個網格頂點P1,從步驟(8)中步驟①的計算結果中獲取該頂點與關節點O構成的向量在骨骼OA上的投影值lP1,從步驟(11)中步驟①的計算結果中獲取該頂點的t值tP1;
②若θ+w2<0,則在三維模型的變形區域中變形前t值為tP1的網格頂點在變形后t值的增量σ=t′MAX-(t′MAX-t′MIN)·(tP1-tMIN)/(tMAX-tMIN)+tP1,否則,σ=t′MIN+(t′MAX-t′MIN)·(tP1-tMIN)/(tMAX-tMIN)-tP1,若θ+w2<0,則頂點P1變形后的t值t′P1=σ×(L1-lP1)/(L1-d)-tP1,否則,t′P1=tP1+σ×(L1-lP1)/(L1-d);
③頂點P1變形前局部坐標寫為(x1,y1,z1),若θ+w2<0,則頂點P1變形后的局部坐標P1′=(-t′P1,y1,-z1),否則,P1′=(-t′P1,y1,z1);
④對于三維模型過渡區域內屬于骨骼OB的每一個網格頂點P2,從步驟(8)中步驟②的計算結果中獲取該頂點與關節點O構成的向量在骨骼OB上的投影值tP2,從步驟(11)中步驟②的計算結果中獲取該頂點的t值tP2;
⑤若θ+w2<0,則在三維模型的變形區域中變形前t值為tP2的網格頂點在變形后t值的增量σ′=t′MAX-(t′MAX-t′MIN)·(tP2-tMIN)/(tMAX-tMIN)+tP2,否則,σ′=t′MIN+(t′MAX-t′MIN)·(tP2-tMIN)/(tMAX-tMIN)-tP2,若θ+w2<0,則頂點P2變形后的t值t′P2=σ′×(L2-lP2)/(L2-d)-tP2,否則,t′P2=tP2+σ′×(L2-lP2)/(L2-d);
⑥若θ+w2<0,則頂點P2變形后的局部坐標P2′=(x2′,y2′,-z2),否則,P2′=(x2′,y2′,z2),其中z2為頂點P2變形前的局部坐標中的z坐標,x2′和y2′來自頂點P2變形后在平面AOB上的投影點的局部坐標P2″=(x2′,y2′,0),其中P2″=lP2·α′+t′P2·γ′,α′=(cos(θ′-π/2),sin(θ′-π/2),0),C′=d·α′;
(14)使用如下方法計算三維模型的非變形區域的頂點在彎曲變形后的局部坐標,其中彎曲變形角度為w2,
對于三維模型非變形區域內屬于骨骼OA的每一個網格頂點,若θ+w2<0,則變形后其局部坐標中的x坐標和z坐標符號取反,否則其局部坐標在變形前后不變;
對于三維模型非變形區域內屬于骨骼OB的每一個網格頂點,其變形前局部坐標為P,該頂點變形后的局部坐標P′=P·R1T,旋轉軸方向向量寫為ρ1=(x,y,z),則旋轉矩陣R1為:
其中旋轉角w=w2,ρ1=(0,0,1),
若θ+w2<0,則將計算得到的網格頂點的局部坐標的x坐標和z坐標符號取反;
(15)使用如下方法計算變形后三維模型對應的局部坐標系到世界坐標系的變換矩陣F1′:
F1′為4×4矩陣,
其中上標T表示矩陣轉置操作,
并且,向量向量γ′=γ″/|γ″|,向量α′=β′×γ′,μo′為關節點O變形后在世界坐標系中的坐標的向量表示,A2、O2、B2為關節點A、O、B變形后在世界坐標系中的坐標;
根據獲得的三維模型每一個網格頂點的局部坐標以及三維模型變形后局部坐標系到世界坐標系的變換矩陣,繪制變形后的三維模型,完成三維模型的彎曲變形。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京理工大學,未經北京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010216621.5/1.html,轉載請聲明來源鉆瓜專利網。





