楊 勝, 雍俊海
(1. 清華大學軟件學院,北京 100084; 2. 清華大學計算機科學與技術系,北京 100084; 3. 信息系統安全教育部重點實驗室,北京 100084; 4. 信息科學與技術清華大學國家實驗室,北京 100084 5. 第三軍醫大學計算機教研室,重慶 400038)
裁剪面是指定義在參數曲面上的一片單連通區域。作為IGES標準的基本幾何體素之一,裁剪面已被廣泛應用于實體造型和曲面造型系統,參與各種計算[1-4]。裁剪面的計算是實體造型系統的基礎,影響著整個系統的效率和穩定性[5]。
裁剪面的計算,總是受到幾何參數表示誤差和數值計算誤差的影響。目前,參數域曲線一般沒有精確的數學表示,常用線段、折線或自由曲線等近似表示。根據曲面上的點計算其對應的參數(又稱為反求參數),數值方法通常存在計算誤差;同時,曲面上的點與其參數的對應關系存在一對多的情形(如封閉曲面縫合邊上的點或極點,對應多個參數值)。這些因素使得建立或修改裁剪面的拓撲關系相當困難,相應的文獻也非常少。因此,尋找穩定處理裁剪面的算法,顯得特別重要。
正如文獻[6]所指出,許多針對參數曲面的算法,并不適用于裁剪面。對于不同參數表示的互相轉換問題,參數曲面著重于重新參數化[7-8],建立重新參數化公式即可;但裁剪面的表示轉換還需要處理:① 計算曲面上曲線對應的參數域曲線;② 重新確定裁剪面的拓撲關系。在此過程中,充分利用原有的拓撲信息、避免重新建立拓撲關系成為轉換算法能否穩定的關鍵。
針對裁剪面的參數表示轉換問題,本文首先確定參數變換對表示信息的影響,然后給出幾何與拓撲信息一致的參數變換的算法。本文還建立了裁剪球面轉換問題的參數變換關系,具體給出了轉換問題的解決方法;對于需要數值法反求參數的情形,給出了實現單值映射的算法。
設I=[0,1], D=I×I, S:D→R3為連續映射,S(D)稱為參數曲面(或完整面);若D1?D為單連通區域,S(D1) 稱為裁剪(參數)面。根據IGES標 準[9],裁剪面的表示信息包括:① 對應的參數曲面(完整面);② 參數曲面上的曲線(邊);③ 映射到邊的參數域曲線(環邊);④ 環邊的連接關系(環);⑤ 環之間的包含關系(面)。標準還規定了環的方向:外環為逆時針,內環為順時針。
裁剪面的參數域信息分為幾何與拓撲信息兩部分,其中幾何信息起決定性作用。一旦修改了參數域的曲線,一般需要重新建立幾何元素的拓撲關系。如下定義的參數變換是一種常見的參數修改形式。
定義1 若 f, g:I→I為可逆連續映射,則稱T:D→D,(s, t) = T(u, v) = ( f(u), g(v))為參數變換。
設S(u, v)為曲面的一種參數表示。
定義1中的參數變換具有可逆、參數u和v的變換可分離的特點。
命題1 對裁剪面的參數域進行參數變換,該變換具有下述性質:
(1) u(或v)向等參線,經過變換后為s(或t)向等參線;
(2) 不相交的兩條曲線,經過變換后也不相交;
(3) 環經過變換后仍為環;
(4) 內環經過變換后仍為內環;
(5) 當f, g 同為增函數或減函數,環方向經過變換后不變;
(6) 若f, g 變換為非線性變換,變換后曲線類型改變。
針對裁剪面參數域曲線表示的特點,特作如下定義。
定義2 設t∈I, C(t)為裁剪面參數域曲線,對C(t)進行變換定義為:
(1) C(t)為等參線 對端點進行變換;
(2) C(t)為折線多邊形 對端點和連接點進行變換;
(3) C(t)為自由曲線并且變換為線性變換 對控制點進行變換;
(4) 其他情形 首先離散C(t)為折線多邊形,然后對折線多邊形的端點和連接點進行變換,最后修改C(t)的曲線類型為折線多邊形。
定義3 設t∈I, C(t)和P(t)為參數曲線。如果P(t) = C(1-t),則稱P(t)為C(t)的反轉曲線;L = {l1(t), l2(t), …, ln(t)}為參數曲線的有序集合,則稱{ln(1-t), ln-1(1-t), …, l1(1-t)}為L的反轉。
至此,可得到對裁剪面參數域進行變換的算法。
算法1 裁剪面的參數變換
輸 入裁剪面,命題1 中確定的參數變換
輸 出變換后的裁剪面
步驟1 對參數域曲線進行變換。
步驟2 如果u 向和v 向變換函數同為增函數或減函數,結束。
步驟3 曲面上的曲線反轉(或者調整環邊與邊的方向關系,如同向→反向,反向→同向)。
步驟4 環反轉。
二次裁剪面由幾何參數表示轉換為Nurbs 表示,是裁剪面求交、變形等操作的基礎。下面以裁剪球面為例,利用參數變換的方法,實現兩種不同參數表示形式的互相轉換。
球面的Nurbs 表示,u 向通常采用7 點法表示圓、v 向采用9 點法的半圓表示(見圖1)。為此,建立球面參數域的轉換關系。

圖1 Nurbs 表示圓和半圓
引理1 設單位半圓弧的幾何參數表示為
C ( t ) = (cosπ t , sinπ t ), t∈[0,1] 該圓弧的三階Nurbs 表示為

其中 Ni,2(u)和 Ri,2(u)分別為B 樣條基函數和 有理樣條基函數,P(u)的控制點、權重和節點向量分別為

則兩種表示方法的參數轉換關系為(t, u∈[0,1])

由引理1 以及Nurbs 表示的對稱性,可得到單位圓幾何參數表示與7 點法Nurbs 表示的參數轉換關系。
定理1 設單位圓的幾何參數表示為
C ( t ) = (cos2π t , sin 2π t ), t∈[0,1]
該圓的三階Nurbs 表示為[8-9]

其中 Ni,2(u)和 Ri,2(u)分別為B 樣條基函數和 有理樣條基函數,控制點、權重和節點向量分別為
{Pi} = {(1, 0), (1, 1), (-1, 1), (-1, 0), (-1,-1), (1,-1), (1,0)},{wi} = {1, 0.5, 0.5, 1, 0.5, 0.5, 1},
U = {0, 0, 0, 0.25, 0.5, 0.5, 0.75, 1, 1, 1}
則兩種表示方法的參數轉換關系為(t, u∈[0,1])

其中

定理1 給出了單位圓幾何參數表示轉換為Nurbs 表示的參數轉換關系。為避免奇異情形的出現,該關系表示為分段函數的形式。同理,可得到半圓的幾何參數表示與5 點法Nurbs 表示的參數轉換關系。
定理2 設單位半圓弧的幾何參數表示為

該圓弧的三階Nurbs 表示為[8-9]

其中 Ni,2(u)和 Ri,2(u)分別為B 樣條基函數和 有理樣條基函數,控制點、權重和節點向量分別為

則兩種表示方法的參數轉換關系為(t, u∈[0,1])

其中

由定理6 和定理7,裁剪球面由幾何參數表示轉換為Nurbs 表示(參見文獻[10-11]),其實現算法如下。
算法2 裁剪球面的幾何參數表示轉換為Nurbs 表示
輸 入幾何法表示的裁剪球面
輸 出Nurbs 表示的裁剪面
步驟1 修改曲面為Nurbs 表示
步驟2 對參數域進行變換,其中u→s 轉換關系為式(3),v→t 轉換關系為式(5)。
同理,裁剪球面由Nurbs 表示轉換為幾何參數表示,由轉換關系式(4)和式(6)可得到相應的轉換算法。對于其他復雜的參數表示轉換,如裁剪球面轉換為高階的Nurbs 形式,直接給出參數轉換的公式相當困難;然而,確定變換函數的單調性卻比較容易。不妨設u 向和v 向的變換函數同為增函數,應用命題2 可得出利用數值法計算變換參數的算法,實現參數之間的單值映射。
算法3 數值方法的參數變換
輸 入原有曲面表示S(u, v)及其裁剪面上的參數點(u0, v0),轉換后曲面表示P(s, t)。
輸 出轉換后裁剪面上對應的參數點 (s0, t0)。

計算點Q = S(0.5, v0), 數值法計算s0, t0使得 P(s0, t0) = Q。

計算點Q = S(u0, 0.5), 數值法計算s0, t0使得P(s0, t0) = Q。

計算點Q = S(u0, v0), 數值法計算s0, t0使得P(s0, t0) = Q。

保持裁剪面的形狀不改變的前提下,對參數域信息進行修改是實體造型中經常需要的操作。本文由此總結出可逆、u 向和v 向的變換可分離的參數變換。首先,給出了該變換對裁剪面表示信息的影響;然后,提出了對裁剪面參數域進行變換的算法。該算法不需要重新建立裁剪面的拓撲關系,直接對原有數據進行調整,確保了變換后裁剪面幾何信息與拓撲信息的一致性。對于不同表示形式的互相轉換問題,給出了裁剪球面參數轉換公式以及利用參數變換的解決方法,用實例對該算法的有效性進行了驗證。
本文提出的參數變換方法,還可以應用到其他二次裁剪面的參數表示轉換、裁剪面的鏡像變換、裁剪面的合并等問題。下一步擬運用本文的方法處理實體拔模、裁剪面變形等操作下的參數域修改問題。
[1] Casale M S. Free-form solid modeling with trimmed surface patches [J]. IEEE Computer Graphics and Applications, 1987, 7(1): 33-43.
[2] Farouki R T. Trimmed-surface algorithms for the evaluation and interrogation of solid boundary representations [J]. IBM Journal of Research and Development, 1987, 31(3): 314-334.
[3] Piegl L A. Geometric method of intersecting natural quadrics represented in trimmed surface form [J]. Computer-Aided Design, 1989, 21(4): 201-212.
[4] Piegl L A, Richard A M. Tessellating trimmed NURBS surfaces[J]. Computer-Aided Design, 1995, 27(1): 16-26.
[5] 劉曉強, 唐榮錫. 實體造型技術的現狀與發展趨勢[J]. 計算機輔助設計與圖形學學報, 1997, 9(3): 284-287.
[6] 胡事民, 孫家廣, 汪國昭. 基于廣義離散分解trimmed 曲面[J].計算機學報, 1999, 22(3): 296-301.
[7] Farin G. From conics to NURBS: a tutorial and survey [J]. IEEE Computer Graphics and Applications, 1992, 12(5): 78-86.
[8] 楊義軍, 雍俊海. 有理Bézier 曲面的標準化[J]. 計算機輔助設計與圖形學學報, 2007, 19(2): 245-250.
[9] Reed K. The initial graphics exchange specification (IGES) version 6.0 [S]. NISTIR 4412, National Institute of Standards, 1998.
[10] Piegl L A, Tiller W. The nurbs book [M]. New York: Springer, 1997. 295-307.
[11] 施法中. 計算機輔助幾何設計與非均勻有理B樣條[M]. 北京: 高等教育出版社, 2001. 435-443.