專利名稱:瓷附熔基底冠網格模型的過渡算法的制作方法
技術領域:
本發明涉及計算機輔助設計領域,特別是計算機輔助由牙體修復體網格模型產生過渡網格曲面。
背景技術:
隨著科學技術的進步,許多領域所構造和使用的三維模型越來越精細、越來越復雜。對于口腔修復體三維模型尤其如此,修復體上的尖、脊、溝等特征形態決定了修復體的表面形狀極其的復雜。基于連續曲面的造型設計已不能很好地表示其表面形狀,而利用離散造型技術例如離散網格,則不但可以精確表示其形狀還有利于模型的進一步的構造和設計。但隨著形狀要求和精度要求的不斷提高,模型的數據量越來越大。例如達到醫用精度的一顆牙齒的修復體模型都有幾萬個三角面片或者更多,在計算機中對模型進行操作的時間也會隨著數據量的增加而增加。在一些軟件系統中,對離散網格模型的操作會有一定的時間要求,例如對于醫用的口腔修復體CAD軟件系統,醫生需要在短時間內對患者的牙體模型進行設計。
目前對于離散網格的過渡算法并不是很成熟,最近幾年由于離散網格的應用在逐漸加強,陸續提出了一些典型的過渡算法,主要可分為基于滾動球方法和隱式曲面的方法。
Yu-Shen Liu對滾動球算法做了比較深入的研究,將兩個待過渡的基網格曲面放在一起,利用一個球沿著相交的輪廓進行滾動一周,可以根據球的中心得到曲線spine curve,同時滾動球與每個基曲面的交線叫做linkage curve。沿著spine curve按照一定的掃掠方式進行掃掠可以得到過渡曲面。這種方法簡單易行,但線的構造用到滾動球,所以要求待過渡的其曲面的形狀在相接近部分的曲面形狀要適合用滾動球過渡,并且會將基曲面相靠近的一部分網格刪除或者拓撲改變。因而對于像口腔修復中需要連接內外表面的狀況,既由于基曲面邊界部分其形狀特殊性無法用滾動球設計也由于需要和預備體貼合必需保持內表面邊界形態的要求,所以此算法不適合運用到口腔修復中的網格模型過渡。
基于隱式曲面的網格構造方法是近些年來得到快速發展并大量運用到離散網格模型中的一種有效的造型方法。最常用的一種隱式曲面造型技術是通過抽取所生成標量場的等值面來生成最終曲面。隱式曲面有著鮮明的優缺點,用戶可以根據隱式曲面方程方便地確定空間點和隱式曲面的相對位置,最明顯的優點是其光滑性非常高所以非常適合于過渡及融合等網格操作。但它不易控制,難以直觀顯示,而且在通過變分插值技術構造隱式曲面的時候,必須要解一個線性方程組。這個方程組的系數矩陣的大小和模型邊界的頂點數目有著密切的關系,隨著離散模型的三角片數目的增長,模型邊界的頂點也隨著增多,從而解方程的時間也跟著增長。因此在需要實時顯示或操作的軟件系統中,例如口腔修復CAD系統中,如果模型的數據量很大,那么采用這種算法產生的延遲會嚴重影響醫生的診治和患者的治療。
發明內容
本發明的目的是提供一種高效的針對牙體三角網格模型的過渡算法,能夠對兩個模型進行快速地過渡,同時保證過渡網格面的質量;為實現上述目的,提出一種一種瓷附熔基底冠網格模型的過渡算法,其特征在于包括根據模型邊界進行分段、利用弗格森曲線獲取骨架線插值點、在骨架線之間構造過渡曲面插值點、邊界的投影縫合;所述根據模型邊界進行分段是將模型的上邊界按邊界邊累加的長度進行等距分段,通過計算上邊界的的總長度,根據需要分段的數目獲得每段的等距長度后,從邊界的有序的第一個頂點重新開始計算,在某兩個相鄰頂點構成的邊上插入等距點v1i,使得從第一個頂點到v1i之間的累加邊長為等距長度的i倍,從而獲得上邊界的等距點v10,v11,…,v1n-1,為了進一步適用下面的算法,還需要對整體模型構造一個近似的中軸線計算重心,點v1c=Σi=0n-1v1i/n;]]>則近似中軸線法矢為Nor=Σi=0n-1(v1c-v1i+1)×(v1i-1-v1c)/n,]]>其中上式中v1-1=v1n-1,v1n=v10,對于下邊界,為了和上邊界的等距點相對應,等距點則是根據Nor和v1i組成的平面與下邊界的邊界邊進行相交計算從而得到與上邊界的等距點相對應的下邊界等距點v2i;上述式中的i為等距點的索引值,n為等距點的數目;所述獲取骨架線插值點,是利用弗格森曲線獲得;弗格森曲線的矢值形式 這里需要用到曲線的端點的切矢值,在模型中,對于上邊界上的等距點v1i,它的法矢為v1iN,則它的切矢值為v1i′=v1N×(v1N×Nor),同理得可以到下邊界分段點切矢值v2i′;上述式中的i為等距點的索引值,n為等距點的數目,u為一段弗格森曲線中自變量在
區間上的取值;
所述構造過渡曲面插值點是將兩條骨架線和上邊界的交點加上交點之間的原模型邊界頂點數作為兩條骨架線對應插值點之間的離散點的數目,每個離散點的位置由對應的邊界上的頂點相對于兩骨架線與上邊界的交點的位置確定,具體算法如下設骨架線和上邊界的交點為v0和vn,中間有n-1個邊界上的頂點vjj=1…n-1,骨架線上的對應的兩個離散點為s0和sn,Pj為重心點v1c、邊界上的分段點和中軸線法矢量Nor構成的平面,spi為直線方程spi-1+x(vi-vi-1)與Pi的交點,其中j=1…n,sp0=s0,從sp0開始依次計算得到sp1、sp2…,最后得到的spn與vn會有一定的位置差異,根據這個差別來調整的整體的誤差,調整的方法為sp1j=spj+(vn-spn)/n j=1…n-1,上面是從骨架線與邊界的交點v0到交點vn的方向順序計算的,為了進一步使形狀逼近邊界,再從交點vn到交點v0的方向計算得到sp2j,最終兩插值點中間的離散點為sj=(sp1j+sp2j)/2,從骨架線上的插值點向兩側按照一定的點數作為取相應的離散點作為過渡線的起點和終點,用這兩個點再次用弗格森曲線插值公式進行插值,此時兩端點的切矢方向根據端點和端點外側的點確定;所述的邊界投影縫合,是通過分段進行縫合的一種方法,將上邊界的分段點v1i和下邊界的分段點v2i分別投影到其相鄰的原模型邊界頂點中的某一個頂點上,為對齊每段在離散點的端點和在邊界上的端點,采用下面的方法來確定邊界上的分段端點頂點的位置求重心點v1c、中軸線矢量Nor和端點vs構成的平面和原網格模型的上邊界邊相交的點vs1,計算交點在所在邊 上的位置 則vs對應的點為vs′=v1ip<0.5v1i+1p≥0.5]]>根據此種方法投影獲得對應的端點vs′,即可以使得端點盡量對齊,也可以保證每段頂點數目至少有一個,不會出現沒有頂點而不能縫合的狀況;對于給定兩排頂點,為了使縫合的三角片比較規整和對齊,采用一種投影縫合算法,首先利用投影頂點來判斷需要連接形成一條邊的一對頂點,具體方法如下對于第一、第二的兩個頂點向量Vec1,Vec2,存儲的頂點分別為 和 這里指的投影是通過一種算法使得第二個頂點向量Vec2里的每個點都對應第一個頂點向量Vec1里的一個點,最后的結果為 投影的方法采用的是基于邊長長度比率的投影方法,先計算第二個頂點向量Vec2里順序連接各點形成的總的邊長長度Len2,再依次算出點v20到v2i按照順序連接形成的邊長的長度占總的邊長長度Len2的比率p2i,同理計算第一個頂點向量Vec1里的每個點的邊長長度比率p1j,再根據每個點的邊長長度比率p1j在總的邊長長度Len2的比率p2i里面的位置關系確定上邊界的等距點v1j和下邊界的等距點v2k,最終根據已確定的投影關系生成若干三角片完成縫合。
本發明利用樣條曲線的優點進行形態控制的過渡算法,不僅能夠提高過渡面生成的速度,同時還具有一定的適應性,能獲得高質量的牙體修復體數據,在計算機輔助口腔修復設計、醫學圖像系統等領域有著重要的應用價值。
圖1模型邊界俯視分段示意2模型截面示意3骨架線的構建示意4離散點的構建(n=7)圖5分片插值點之間的過渡圖6縫合區域的確定圖7投影匹配點的確定圖8縫合算法流程圖9縫合完成示意圖具體實施方式
本發明的核心思想是將樣條曲線利用到生成網格頂點的過程中,同時為了在能夠快速進行過渡的同時還可以保證過渡曲面和基曲面的過渡光滑,本發明提出了一種基于邊界邊形狀的過渡離散點構造方法和一種投影縫合方法。
下面結合附圖詳細描述本發明的網格過渡算法。作為一種具體的實現方案,本算法主要包括四個步驟根據模型邊界進行分段,利用弗格森曲線獲取骨架線插值點,在骨架線之間構造過渡曲面插值點,邊界的投影縫合。下面對其逐一介紹。
根據模型邊界進行分段圖1和圖2給出了待過渡的網格曲面示意圖。首先將模型的上邊界按邊界邊累加的長度進行等距分段。通過計算上邊界的的總長度,根據需要分段的數目獲得每段的等距長度后。從邊界的有序的第一個頂點重新開始計算,在某兩個相鄰頂點構成的邊上插入等距點v1i,使得從第一個頂點到v1i之間的累加邊長為等距長度的i倍。從而獲得上邊界的等距點v10,v11,…,v1n-1。為了進一步適用下面的算法。還需要對整體模型構造一個近似的中軸線。
計算重心,點v1c=Σi=0n-1v1i/n;]]>則近似中軸線法矢為
Nor=Σi=0n-1(v1c-v1i+1)×(v1i-1-v1c)/n;]]>其中上式中v1-1=v1n-1,v1n=v10;對于下邊界,為了和上邊界的等距點相對應,等距點則是根據Nor和v1i組成的平面與下邊界的邊界邊進行相交計算從而得到與上邊界的等距點相對應的下邊界等距點v2i。
上述式中的i為等距點的索引值,n為等距點的數目。
獲取骨架線插值點弗格森曲線的矢值形式 這里需要用到曲線的端點的切矢值,在模型中,對于上邊界上的等距點v1i,它的法矢為v1iN,則它的切矢值為v1i′=v1N×(v1N×Nor),同理可以得到下邊界分段點切矢值v2i′;上述式中的i為等距點的索引值,n為等距點的數目,u為一段弗格森曲線中自變量在
區間上的取值。
根據用戶所想要的外輪廓形狀就可以構造骨架線的插值點。如將插值點順序相連就是我們所需要的骨架線,如圖3所示加粗部分。曲線的段數根據需要而定,插值點的數量可以根據整體網格模型的平均邊長確定,也可以根據具體需求而定。對于不同形狀要求的骨架線,可能需要多條樣條曲線進行拼接,后一條曲線起始點處的切矢可通過前一段曲線最后兩個插值點來確定。這里需要注意的是,對于靠近模型兩邊界的離散點可以適當調整u的數值,使之盡量靠近邊界從而保證最終的的模型縫合之后的光順性,這里與邊界的距離一般為平均的三角邊長長度。
構造過渡曲面插值點在骨架線插值點構造好之后,就要在兩條骨架線的插值點之間進一步設計離散點構造網格面。因為分段的數目遠遠小于模型邊界上的頂點數,所以兩條骨架線之間的離散點的構造,直接控制了這個過渡網格面的形狀。本發明算法是一次性構造算法,為了保證和上邊界有很好的形狀上的連續性和光順性。本發明提出一種基于邊界邊形狀的過渡離散點構造算法。
兩條骨架線和上邊界的交點加上交點之間的頂點數作為兩條骨架線對應插值點之間的離散點的數目。而每個離散點的位置由對應的邊界上的頂點相對于兩骨架線與上邊界的交點的位置確定。結合圖4,具體算法如下
設骨架線和上邊界的交點為v0和vn,中間有n-1個邊界上的頂點vj,其中j=1…n-1。
骨架線上的對應的兩個離散點為s0和sn,pj為重心點v1c、邊界上的分段點和中軸線法矢量Nor構成的平面。
則spi為直線方程spi-1+x(vi-vi-1)與Pi的交點,其中j=1…n,sp0=s0,從sp0開始依次計算得到sp1、sp2…,最后得到的spn與vn會有一定的位置差異,根據這個差別來調整的整體的誤差,調整的方法為sp1j=spj+(vn-spn)/n,其中j=1…n-1,上面是從骨架線與邊界的交點v0到交點vn的方向順序計算的,為了進一步使形狀逼近邊界,再從交點vn到交點v0的方向計算得到sp2j,最終兩插值點中間的離散點為sj=(sp1j+sp2j)/2,因為需要在下一步進行縫合操作,所以這些離散點并不包括位置在上下邊界上的頂點v1i和v2i,從而使得離散點群與上下邊界具有一定的距離來完成縫合。
如果我們僅僅從這些離散點直接構造三角網格曲面,那么每條骨架線兩邊的網格曲面片之間還會由于計算的誤差而使得過渡不連續。所以還需要對兩曲面之間進行如圖5的類倒角過渡,其中左圖為未進行圓角過渡,右圖為進行圓角過渡后的示意圖。
類圓角過渡就是在一條骨架線的兩側的離散點群上,從骨架線上的插值點向兩側按照一定的點數作為過渡線的起點和終點。用這兩個點再次用弗格森曲線插值公式進行插值,此時兩端點的切矢方向根據端點和端點外側的點確定。進行過渡之后再三角化才會使得整體的曲面形狀變得光順,并且在大多數的情況要求下都可以不進行進一步的光順操作。
邊界的投影縫合當利用前面步驟產生的離散點進行三角網格面重構可以產生整體的過渡曲面,過渡面產生以后,需要將產生的網格曲面的邊界和原來的網格曲面邊界進行縫合。本發明中,整體過渡曲面的構造是通過分片構造完成的,所以邊界的縫合可以有兩種方法一種也是通過分段進行縫合;另外一種則是整體進行縫合。但整體進行縫合可能會由于誤差或位置距離的累積而產生一些類似扭曲、錯位等問題,需要進一步地優化。因為本發明是一種快速的過渡算法,在前面的步驟中提到為了進行快速縫合,已經使得構造的網格曲面的邊界和原來的曲面邊界的距離比較小了,基本和平均的三角網格的邊的長度差不多。所以可以通過分段進行縫合,既可以快速縫合,也可以使得縫合一次性完成避免后續的修正。
分片縫合的邊界端點的一個具體要求是兩個邊界的端點要盡可能的對齊。在確定類圓角過渡的過渡線的端點時候,也就確定了構造的網格曲面上的邊界的分段狀況。對于每段來說,需要在原來網格曲面的邊界上確定分段狀況。在根據模型邊界進行分段的介紹中上邊界的分段的等距點v1i和下邊界上的分段的等距點v2i都是在邊界邊上某兩個相鄰頂點之間的連線上的,為了縫合必須將他們投影到兩個相鄰的頂點中的某一個頂點上。由于已經進行了圓角過渡,此時的分段既有在初始分段內部的部分,也有包括原始骨架線的過渡部分,所以從第二個分段曲面開始就要進行兩個縫合操作如圖6的不跨原始邊界的內部插值點縫合和跨原始邊界的過渡插值點縫合。為了能夠盡量地對齊,使用下面的方法來確定邊界上的分段端點頂點的位置。
求重心點v1c、中軸線矢量Nor和端點vs構成的平面和原網格模型的上邊界邊相交的點vs1,計算交點在所在邊 上的位置 則vs對應的點為vs′=v1ip<0.5v1i+1p≥0.5]]>根據此種方法投影獲得對應的端點vs,即可以使得端點盡量對齊,也可以保證每段頂點數目至少有一個,不會出現沒有頂點而不能縫合的狀況。
對于給定兩排頂點,為了使縫合的三角片比較規整和對齊,本文提出一種投影縫合算法。首先利用投影頂點來判斷需要連接形成如圖7的一條邊的一對頂點。具體方法如下對于第一、第二的兩個頂點向量Vec1,Vec2,存儲的頂點分別為 和 這里指的投影是通過一種算法使得第二個頂點向量Vec2里的每個點都對應第一個頂點向量Vec1里的一個點。最后的結果為 投影的方法可以有很多種,只要最后可以得到一對匹配的點即可,但投影方法的不同對最后形成的三角片會有很大的影響。本發明采用的是基于邊長長度比率的投影方法。總體的思想是先計算第二個頂點向量Vec2里順序連接各點形成的總的邊長長度Len2,再依次算出點v20到v2i按照順序連接形成的邊長的長度占Len2的比率p2i。同理計算第一個頂點向量Vec1里的每個點的邊長長度比率p1j,再根據每個點的邊長長度比率p1j在總的邊長長度Len2的比率p2i里面的位置關系確定上邊界的等距點v1j和下邊界的等距點v2k。當匹配點計算完畢后,我們首先可以根據這些匹配信息,生成如圖7一些邊。
從圖7上可以看出,第一個頂點向量Vec1里每一個點都對應著第二個頂點向量Vec2里的一個點的位置索引,并且第一個頂點向量Vec1后一個點對應的索引值總是大于或者等于前一個點對應的索引值的。通過這些索引值的信息,就可以將從左到右依次生成三角片來完成縫合算法。
設Last和Current為第一個頂點向量Vec1順序的前后兩個點的下標。利用索引值進行縫合的具體算法流程圖如圖8.縫合后的效果如圖9。運用這種分段投影縫合算法,既可以確保正確性和快速性,而且在口腔修復的精度要求范圍內可以使得縫合可以一次性完成,無需進行額外的處理,提高了執行的效率。
權利要求
1.一種瓷附熔基底冠網格模型的過渡算法,其特征在于包括根據模型邊界進行分段、利用弗格森曲線獲取骨架線插值點、在骨架線之間構造過渡曲面插值點、邊界的投影縫合;所述根據模型邊界進行分段是將模型的上邊界按邊界邊累加的長度進行等距分段,通過計算上邊界的的總長度,根據需要分段的數目獲得每段的等距長度后,從邊界的有序的第一個頂點重新開始計算,在某兩個相鄰頂點構成的邊上插入等距點v1i,使得從第一個頂點到v1i之間的累加邊長為等距長度的i倍,從而獲得上邊界的等距點v10,v11,...,v1n-1,為了進一步適用下面的算法,還需要對整體模型構造一個近似的中軸線計算重心,點v1c=Σi=0n-1v1i/n;]]>則近似中軸線法矢為Nor=Σi=0n-1(v1c-v1i+1)×(v1i-1-v1c)/n,]]>其中上式中v1-1=v1n-1,v1n=v10,對于下邊界,為了和上邊界的等距點相對應,等距點則是根據Nor和v1i組成的平面與下邊界的邊界邊進行相交計算從而得到與上邊界的等距點相對應的下邊界等距點v2i;上述式中的i為等距點的索引值,n為等距點的數目;所述獲取骨架線插值點,是利用弗格森曲線獲得;弗格森曲線的矢值形式 這里需要用到曲線的端點的切矢值,在模型中,對于上邊界上的等距點v1i,它的法矢為v1iN,則它的切矢值為v1i′=v1N×(v1N×Nor),同理可以得到下邊界分段點切矢值v2i′;上述式中的i為等距點的索引值,n為等距點的數目,u為一段弗格森曲線中自變量在
區間上的取值;所述構造過渡曲面插值點是將兩條骨架線和上邊界的交點加上交點之間的原模型邊界頂點數作為兩條骨架線對應插值點之間的離散點的數目,每個離散點的位置由對應的邊界上的頂點相對于兩骨架線與上邊界的交點的位置確定,具體算法如下設骨架線和上邊界的交點為v0和vn,中間有n-1個邊界上的頂點vjj=1…n-1,骨架線上的對應的兩個離散點為s0和sn,pj為重心點v1c、邊界上的分段點和中軸線法矢量Nor構成的平面,spi為直線方程spi-1+x(vi-vi-1)與Pi的交點,其中j=1…n,sp0=s0,從sp0開始依次計算得到sp1、sp2…,最后得到的spn與vn會有一定的位置差異,根據這個差別來調整的整體的誤差,調整的方法為sp1j=spj+(vn-spn)/n j=1…n-1,上面是從骨架線與邊界的交點v0到交點vn的方向順序計算的,為了進一步使形狀逼近邊界,再從交點vn到交點v0的方向計算得到sp2j,最終兩插值點中間的離散點為sj=(sp1j+sp2j)/2,從骨架線上的插值點向兩側按照一定的點數作為取相應的離散點作為過渡線的起點和終點,用這兩個點再次用弗格森曲線插值公式進行插值,此時兩端點的切矢方向根據端點和端點外側的點確定;所述的邊界投影縫合,是通過分段進行縫合的一種方法,將上邊界的分段的等距點v1i和下邊界的分段的等距點v2i分別投影到其相鄰的原模型邊界頂點中的某一個頂點上,為對齊每段在離散點的端點和在邊界上的端點,采用下面的方法來確定邊界上的分段端點頂點的位置求重心點v1c、中軸線矢量Nor和端點vs構成的平面和原網格模型的上邊界邊相交的點vs1,計算交點在所在邊 上的位置 則vs對應的點為vs′=v1ip<0.5v1i+1p≥0.5]]>根據此種方法投影獲得對應的端點vs′,即可以使得端點盡量對齊,也可以保證每段頂點數目至少有一個,不會出現沒有頂點而不能縫合的狀況;對于給定兩排頂點,為了使縫合的三角片比較規整和對齊,采用一種投影縫合算法,首先利用投影頂點來判斷需要連接形成一條邊的一對頂點,具體方法如下對于第一、第二的兩個頂點向量Vec1,Vec2,存儲的頂點分別為 和 這里指的投影是通過一種算法使得第二個頂點向量Vec2里的每個點都對應第一個頂點向量Vec1里的一個點,最后的結果為 投影的方法采用的是基于邊長長度比率的投影方法,先計算第二個頂點向量Vec2里順序連接各點形成的總的邊長長度Len2,再依次算出點v20到v2i按照順序連接形成的邊長的長度占總的邊長長度Len2的比率p2i,同理計算第一個頂點向量Vec1里的每個點的邊長長度比率p1j,再根據每個點的邊長長度比率p1j在總的邊長長度Len2的比率p2i里面的位置關系確定上邊界的等距點v1j和下邊界的等距點v2k,最終根據已確定的投影關系生成若干三角片完成縫合。
全文摘要
一種瓷附熔基底冠網格模型的過渡算法,屬于牙體修復體網格模型的過渡算法。本過渡算法,包括根據模型邊界進行分段、利用弗格森曲線獲取骨架線插值點、在骨架線之間構造過渡曲面插值點、邊界的投影縫合四個步驟。本發明的過渡算法,不僅能夠提高過渡面生成的速度,同時還具有一定的適應性,能獲得高質量的牙體修復體數據,在計算機輔助口腔修復設計、醫學圖像系統等領域有著重要的應用價值。
文檔編號G06T19/00GK101079156SQ20071002482
公開日2007年11月28日 申請日期2007年6月29日 優先權日2007年6月29日
發明者廖文和, 戴寧, 聶欣, 程筱勝 申請人:南京航空航天大學