專利名稱:一種矢量字三角片建模過程中圖形元素信息的判斷方法
技術領域:
本發明涉及矢量字三角片建模技術領域,特別是涉及一種矢量字三角片建模過程中圖形元素信息的判斷方法。
背景技術:
矢量字三角片建模,是指從指定的矢量字庫中提取指定的文字的矢量描述信息, 然后將這些矢量信息轉變為一系列的多邊形,最后求得一堆三角形的集合,使得這些三角形拼合起來的結果形成文字,以方便使用Direct3D或OPenGL (OPen GraPhics Library)進行三維渲染。目前矢量字三角片建模的算法繁多,但大都不可避免地進行某點是否在指定三角形中,或者,某一條線段是否和另一線段相交的判斷。以某一條線段是否和另一條線段相交的判斷為例,通常的做法是,首先排除明顯不可能相交的線段,而在矢量字庫中,線段是用兩個端點的坐標來表示的,這樣,所述排除方法就是比較兩線段的端點坐標。假設線段1的端點坐標為(xl,yl)、(x2,y2),線段2的端點坐標為(ΧΙ,ΥΙ)、(X2, Y2),那么,所述排除方法可以為如果XI,X2中的最小值大于xl,x2中的最大值,或者XI,X2中的最大值小于xl,x2中的最小值,或者Yl,Y2中的最小值大于yl,y2中的最大值,或者Yl,Y2中的最大值小于yl,y2中的最小值,則兩線段不可能相交,在執行上述排除過程時,需要用到X方向的坐標比較,如X1、X2的比較,xl、x2的比較,以及,這些X方向坐標最大最小值的獲取;有時,還需要用到Y方向的坐標比較和最大最小值的獲取。矢量字三角片建模是一個要求在盡量短的時間內完成不定數量的文字的渲染的應用,所以在這里提高矢量字三角片建模的速度也就變得非常重要;而在具體實現中,所述端點的坐標值均使用浮點數表示,也即,上述算法大多為浮點數的比較運算(如減法運算);由于浮點數的特點,其在計算機中運算所耗時間是整型運算的N倍,其中,N為大于1 的整數。總之,需要本領域技術人員迫切解決的一個技術問題就是如何提高矢量字三角片建模的速度。
發明內容
本發明所要解決的技術問題是一種矢量字三角片建模過程中圖形元素信息的判斷方法,用以提高矢量字三角片建模的速度。為了解決上述問題,本發明公開了一種矢量字三角片建模過程中圖形元素信息的判斷方法,包括輸入步驟輸入矢量字數據,其中,所述矢量字為外輪廓線段逼近后矢量多邊形, 所述矢量字數據包括多個矢量點的數據;Y方向排序步驟對矢量字數據進行排序,得到坐標Y方向的排序結果;X方向排序步驟對矢量字數據進行排序,得到坐標X方向的排序結果;判斷步驟根據矢量字數據,以及坐標Y方向和坐標X方向的排序結果,對三角片建模過程中的圖形元素信息進行判斷。優選的,所述圖形元素信息為兩條線段的相交信息,其中,所述線段的端點為矢量點。所述判斷步驟包括獲取第一線段的兩端點在Y方向和X方向的排序結果第一起點Y序號、第一終點 Y序號、第一起點X序號、第一終點X序號;獲取第二線段的兩端點在Y方向和X方向的排序結果第二起點Y序號、第二終點 Y序號、第二起點X序號、第二終點X序號;依據第一判斷規則和該兩條線段的排序結果,獲取該兩條線段的相交信息,其中, 所述第一判斷規則為如果第一起點X序號、第一終點X序號中的最小值大于第二起點X序號、第二終點 X序號中的最大值,或者,第一起點X序號、第一終點X序號中的最大值小于第二起點X序號、第二終點X序號中的最小值,或者,第一起點Y序號、第一終點Y序號中的最小值大于第二起點Y序號、第二終點Y序號中的最大值,或者第一起點Y序號、第一終點Y序號中的最大值小于第二起點Y序號、第二終點 Y序號中的最小值,則所述兩條線段不相交。優選的,所述圖形元素信息為待判斷點與三角形的位置關系信息,其中,所述待判斷點和三角形3個頂點為矢量點;所述判斷步驟包括獲取所述待判斷點在Y方向和X方向的排序結果Y序號和X序號;根據三角形3個頂點的Y方向排序結果,獲取最大Y序號和最小Y序號;根據三角形3個頂點的X方向排序結果,獲取最大X序號和最小X序號;依據第二判斷規則,以及,Y序號、X序號、最大Y序號、最小Y序號、最大X序號和最小X序號,獲取待判斷點與三角形的位置關系信息,其中,所述第二判斷規則為如果X序號大于最大X序號,或者,X序號小于最小X序號,或者,Y序號大于最大Y序號,或者,Y序號小于最小Y序號,則該待判斷點不在三角形內。優選的,所述圖形元素信息為凸角頂點信息;
所述判斷步驟包括根據坐標Y方向的排序結果,找出Y最大的矢量點,作為凸角頂點。優選的,所述方法還包括保存步驟將所述多個矢量點的數據保持到數據數組。優選的,所述建模過程為尋找操作在當前矢量多邊形中找到一個凸角頂點PC,以及,該凸角頂點PC及其前點PP和后點PN形成的三角形{PP,PC, PN};第一判斷操作針對當前矢量多邊形中除PP、PC、PN外的任一矢量點PI,判斷其是否滿足分割條件,若是,則執行分割多邊形操作,否則,執行輸出三角形操作,其中,所述分割條件為,PI在三角形{PP,PC,PN}內,且PI與PC的連線PIPC不與矢量多邊形中不以PI 或PC為端點的線段相交;分割多邊形操作使用PIPC將當前矢量多邊形分割為兩個,并返回尋找操作,分別對所述兩個矢量多邊形進行處理;輸出三角形操作輸出{PP,PC, PN}為一個三角片,并將PC點從當前矢量多邊形的數據數組中去除;第二判斷操作判斷當前矢量多邊形的數據數組中矢量點的數目是否小于3,若是,則執行去除多邊形操作,否則,返回尋找操作;去除多邊形操作去除當前矢量多邊形的數據數組;第三判斷操作判斷是否存在矢量多邊形,若是,則返回尋找操作,否則,執行結束操作;結束操作三角片建模結束。優選的,所述Y方向排序步驟包括根據Y坐標大小對所述矢量字數據排序,如果Y坐標相等,則按照X坐標大小進行排序。優選的,所述X方向排序步驟包括根據X坐標大小對所述矢量字數據排序,如果X坐標相等,則按照Y坐標大小進行排序。與現有技術相比,本發明具有以下優點本發明在矢量字三角片建模過程中,首先對已知的浮點值進行排序,這樣,在進行需要某浮點值參與的判斷時,可以使用該浮點值在排序結果的序號;由于使用浮點值的排序序號進行判斷,實際上將浮點運算轉變成了整型運算,而排序時需要用到的浮點值比較的次數遠遠小于三角片建模時進行的浮點值比較次數,因而能夠提高運算速度,進而提高三角片建模的速度。
圖1是本發明一種矢量字三角片建模過程中圖形元素信息的判斷方法實施例的流程圖;圖2是本發明一種矢量多邊形的示意圖;圖3是本發明一種XY坐標系的示意圖4是本發明一種英文字母L的矢量字模示意圖;圖5是本發明一種凸角頂點組成的三角形的示例1 ;圖6是本發明一種輸出三角片的示意1 ;圖7是本發明一種判斷分割條件的示意;圖8是本發明一種輸出三角片的示意2 ;圖9是本發明一種尋找凸角頂點及三角形的示意;圖10是本發明一種輸出三角片的示意3 ;圖11是本發明一種輸出三角片的示意4 ;圖12是本發明一種建模結果的輸出示例。
具體實施例方式為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本發明作進一步詳細的說明。在實際應用浮點值進行某點是否在指定三角形中、某一條線段是否和另一線段相交等信息的判斷時,參與判斷的浮點值,其實在提取矢量字信息得到一系列多邊形后就已經確定了。本發明的核心構思之一在于,在確定矢量字的浮點值后,對所有的浮點值進行排序,這樣,在進行需要某浮點值參與的判斷時,可以使用該浮點值在排序結果的序號;由于使用浮點值的排序序號進行判斷,實際上將浮點運算轉變成了整型運算,而排序時需要用到的浮點值比較的次數遠遠小于三角片建模時進行的浮點值比較次數,因而能夠提高三角片建模的速度。參照圖1,示出了本發明一種矢量字三角片建模過程中圖形元素信息的判斷方法實施例的流程圖,具體可以包括輸入步驟11、輸入矢量字數據,其中,所述矢量字為外輪廓線段逼近后矢量多邊形,所述矢量字數據可以包括多個矢量點的數據;在實際中,所述圖形元素信息可以包括兩條線段的相交信息,待判斷點與三角形的位置關系信息、凸角頂點等信息,其中,所述待判斷對象均與所述矢量點有關,例如,所述線段的端點為矢量點,所述待判斷點為矢量點,所述三角形3個頂點為矢量點等。在具體實現中,建模的第一步應該是矢量字數據的提取;以英文字母L為例,可以對該英文字母L的外輪廓線段逼近之后,得到圖2所示的矢量多邊形,該矢量多邊形可以包括多個矢量點,這時,所述多個矢量點的坐標數據數組即可以作為建模過程中的輸入數據 (xl,yl),(x2,y2),(x3,y3),(x4,y4),(x5,y5),(x6,y6)。為方便對所述矢量字數據進行管理,在本發明的一種優選實施例中,本發明的判斷方法還可以包括保存步驟、將所述多個矢量點的數據保持到數據數組。有了數據數組,在分割一個三角形(為統一術語,均采用三角形描述建模過程中的三角片)后,即可將該三角形的凸角頂點從數據數組中去掉;這樣,可以通過更新數據數組,來改變其中矢量點的數目,以方便接下來的三角形分割。Y方向排序步驟12、對矢量字數據進行排序,得到坐標Y方向的排序結果;
7
本步驟的實現過程可以為根據Y坐標大小對所述矢量字數據排序,如果Y坐標相等,則按照X坐標大小進行排序;如果按照圖3所示的XY坐標系,對圖2所示的矢量多邊形在Y方向進行從大到小排序,則其坐標Y方向的排序結果為:P5, P6,P4,P3,P2,PI。X方向排序步驟13、對矢量字數據進行排序,得到坐標X方向的排序結果;在實際中,本步驟的執行過程可以為根據X坐標大小對所述點數據排序,如果X 坐標相等,則按照Y坐標大小進行排序;按照圖3所示的XY坐標系,對圖2所示的矢量多邊形在Y方向進行從大到小排序,則其坐標Y方向的排序結果為P5,P4,P3,P2,P6,PI。判斷步驟14、根據矢量字數據,以及坐標Y方向和坐標X方向的排序結果,對三角片建模過程中的圖形元素信息進行判斷。目前矢量字三角片建模的算法很多,且已很成熟,在本發明一種優選實施例中,采用快速算法作為原型,此時,所述三角片建模的流程可以包括如下步驟尋找操作Si、在當前矢量多邊形中找到一個凸角頂點PC,以及,該凸角頂點PC及其前點PP和后點PN形成的三角形{PP,PC, PN};本操作需要用到凸角頂點信息的判斷。多邊形凸角的一個證明方法是存在一條過該角頂點的直線使得除了該頂點外, 多邊形其他的點都在這條直線的同一邊;通過幾何原理可看出,坐標Y方向的排序結果中的Y最大的那個矢量點必滿足上面的證明方法,例如,圖2中的P6即為凸角頂點。由于本操作只需要找到一個凸角頂點PN,所以,在所述圖形元素信息為凸角頂點信息時;所述判斷步驟14的執行過程可以為根據坐標Y方向的排序結果,找出Y最大的矢量點,作為凸角頂點。因此,相對于現有技術反復計算角點的角度,本發明只需找到Y最大的那個矢量點,因而能夠大大節省計算速度。第一判斷操作S2、針對當前矢量多邊形中除PP、PC、PN外的任一矢量點PI,判斷其是否滿足分割條件,若是,則執行分割多邊形操作S3,否則,執行輸出三角形操作S4,其中, 所述分割條件為,PI在三角形{PP,PC,PN}內,且PI與PC的連線PIPC不與矢量多邊形中不以PI或PC為端點的線段相交;本操作需要用到待判斷點與三角形的位置關系信息的判斷,其中,所述待判斷點和三角形3個頂點均為矢量多邊形的矢量點;此時,所述判斷步驟14可以包括以下子步驟子步驟Al、獲取所述待判斷點在Y方向和X方向的排序結果Y序號和X序號;子步驟Α2、根據三角形3個頂點的Y方向排序結果,獲取最大Y序號和最小Y序號;子步驟A3、根據三角形3個頂點的X方向排序結果,獲取最大X序號和最小X序號;子步驟Α4、依據第二判斷規則,以及,Y序號、X序號、最大Y序號、最小Y序號、最大X序號和最小X序號,獲取待判斷點與三角形的位置關系信息,其中,所述第二判斷規則可以為如果X序號大于最大X序號,或者,X序號小于最小X序號,
或者,Y序號大于最大Y序號,或者,Y序號小于最小Y序號,則該待判斷點不在三角形內。上述第二判斷規則的構建原則為,通過比較其它點有沒有在三角形覆蓋的矩形區域內,來過濾大量的無關點,因此,本發明具有過濾無關點,從而減少浮點值運算量的優點; 對于不符合第二判斷規則的矢量點,還需要運用浮點值進一步判斷其是否在指定的三角形內。可以理解,本發明不局限于所述第二判斷規則,本領域技術人員可以根據需要,構建其它第二判斷規則,本發明對此不加以限制。本操作還需要用到兩條線段的相交信息的判斷,其中,所述線段的端點為矢量點。此時,所述判斷步驟14可以包括以下子步驟子步驟Bi、獲取第一線段的兩端點在Y方向和X方向的排序結果第一起點Y序號、第一終點Y序號、第一起點X序號、第一終點X序號;子步驟B2、獲取第二線段的兩端點在Y方向和X方向的排序結果第二起點Y序號、第二終點Y序號、第二起點X序號、第二終點X序號;子步驟B3、依據第一判斷規則和該兩條線段的排序結果,獲取該兩條線段的相交信息,其中,所述第一判斷規則可以為如果第一起點X序號、第一終點X序號中的最小值大于第二起點X序號、第二終點 X序號中的最大值,或者,第一起點X序號、第一終點X序號中的最大值小于第二起點X序號、第二終點X序號中的最小值,或者,第一起點Y序號、第一終點Y序號中的最小值大于第二起點Y序號、第二終點Y序號中的最大值,或者第一起點Y序號、第一終點Y序號中的最大值小于第二起點Y序號、第二終點 Y序號中的最小值,則所述兩條線段不相交。分割多邊形操作S3、使用PIPC將當前矢量多邊形分割為兩個,并返回尋找操作 Si,分別對所述兩個矢量多邊形進行處理;輸出三角形操作S4、輸出{PP,PC, PN}為一個三角片,并將PC點從當前矢量多邊形的數據數組中去除;特別地,分割多邊形操作S3往往會導致多個矢量多邊形的存在;在從當前矢量多邊形的數據數組中去除PC點的數據后,還應判斷PC點是否存在于其它的任一矢量多邊形中,若否,則將該PC點從排序結果中去除。第二判斷操作S5、判斷當前矢量多邊形的數據數組中矢量點的數目是否小于3, 若是,則執行去除多邊形操作S6,否則,返回尋找操作Sl ;去除多邊形操作S6、去除當前矢量多邊形的數據數組;特別地,對于當前矢量多邊形中除PC點外的其它兩點,如果其不存在于其它的任一矢量多邊形中,則將其從排序結果中去除。
第三判斷操作S7、判斷是否存在矢量多邊形,若是,則返回尋找操作Si,否則,執行結束操作S8 ;結束操作S8 ;三角片建模結束。可見,在上述三角片建模的過程中,操作Sl需要計算角點的角度;操作S2需要判斷指定的矢量點是否在指定三角形中,以及,兩條線段相交的相交信息。現有技術在執行上述操作時,需要采用浮點值進行計算,這些計算在處理這6個點的簡化多邊形時還無關緊要,隨著點的增加,其消耗的時間是成幾何級數上升的,而一般矢量字都是由幾百甚至上千個點組成的;而本發明的判斷方法可以方便地找到凸角頂點, 或者,過濾大量的無關點,故可以提高運算速度。為使本領域技術人員更好地理解本發明,以下通過示例說明,矢量字三角片建模過程中的圖形元素信息判斷的實現過程。所述示例涉及,對圖2所示的英文字母L矢量多邊形進行三角片建模,得到圖4所示的英文字母L的矢量字模,并按順時針方向輸出;其中,圖2中4個三角片的輸出數據,可用三角片的 3 個頂點表示{P5,P6,P4},{P6,P3,P4},{P6,PI, P3},{P3,PI, P2};原始矢量多邊形在Y方向從小到大的排序結果為Pl,P2,P3,P4,P6,P5,在X方向從小到大的排序結果為Pl,P6,P2,P3,P4,P5 ;所述三角片建模的流程具體可以包括如下步驟步驟Tl、根據Y方向排序結果,在當前矢量多邊形中找到一個凸角頂點P5,以及, 參照圖5,該凸角頂點P5及其前點P4和后點P6形成的三角形{P5,P6,P4};步驟T2、經判斷得知,當前矢量多邊形的其它矢量點Pl、P2、P3均不滿足分割條件;例如,在判斷矢量點Pl與三角形的位置關系信息時,由于Pl的排序結果分別為 {X=1,Y= 1},三角形{P5,P6, P4}的{Xmin = 2,Xmax = 6,Ymin = 4,Ymax = 6},且,X < Xmin,故可根據第二判斷原則得知,Pl不在三角形{P5,P6,P4}內,從而,Pl不滿足分割條件。對于P2 {X = 3,Y = 2}、P3 {X = 4,Y = 3},由于其判斷過程與Pl的類似,故在此不作贅述。步驟T3、參照圖6,輸出三角片爐5沖6,?4},從當前矢量多邊形中去除?5點,并且, 由于P5點沒有對應的矢量多邊形,所以,將其從排序結果中去除;更新后的數據矢量多邊形{Pl,P2,P3,P4,P6};Y方向從小到大的排序結果:P1, P2,P3,P4,P6 ;X方向從小到大的排序結果:P1, P6,P2,P3,P4 ;三角片輸出結果{P5,P6,P4}。步驟T4、更新后的矢量多邊形中矢量點的數目5 > 3,故執行凸角頂點的尋找操作;步驟T5、根據更新后的Y方向排序結果,在當前矢量多邊形中找到一個凸角頂點 P6,以及,參照圖7,該凸角頂點P6及其前點P4和后點Pl形成的三角形{P1,P6,P4};步驟T6、經判斷得知,當前矢量多邊形的矢量點P3滿足分割條件;參照圖7,P3在三角形{P1,P6,P4}內,且線段P3P6不與線段P1P2、P1P4、P2P4相
10交。步驟T7、參照圖8,使用線段P3P6,將當前矢量多邊形分割為如下兩個矢量多邊形1{P1,P2,P3,P6}矢量多邊形2 {P3,P4,P6}步驟T8、對于矢量多邊形2 {P3,P4,P6},根據更新后的Y方向排序結果,找到一個凸角頂點P6,以及,參照圖7,該凸角頂點P6及其前點P4和后點P3形成的三角形{P3,P6, P4};步驟T9、由于矢量多邊形2{P3,P4,P6}除了點P6以及它的前點P3,后點P4外,再沒有其它點了,顯然不滿足分割條件;步驟T10、參照圖8,輸出三角片爐3沖6,?4},從矢量多邊形2中去除?6點,此時, 由于?6點還在矢量多邊形1爐1,?2,?3,?6}中,所以不從排序結果中去除。得到更新后的數據矢量多邊形1 {Pl,P2,P3,P6};Y方向從小到大的排序結果:P1, P2,P3,P6 ;X方向從小到大的排序結果:P1, P6,P2,P3 ;三角片輸出結果{P5,P6,P4}、{P3,P6,P4}。步驟111、由于還存在矢量多邊形1妒1,?2,?3,?6},故執行凸角頂點的尋找操作;步驟T12、根據更新后的Y方向排序結果,在矢量多邊形1中找到一個凸角頂點 P6,以及,參照圖9,該凸角頂點P6及其前點P3和后點Pl形成的三角形{P1,P6,P3};步驟T13、經判斷得知,當前矢量多邊形的矢量點P2不滿足分割條件;步驟T14、參照圖10,輸出三角片爐1沖6,?3},從矢量多邊形1中去除?6點,并且, 由于P6點沒有對應的矢量多邊形,所以,將其從排序結果中去除;更新后的數據矢量多邊形1 {Pl,P2,P3};Y方向從小到大的排序結果P1,P2,P3 ;X方向從小到大的排序結果:P1, P2,P3 ;輸出結果{P5,P6,P4}、{P3,P6,P4}、{Pl,P6,P3}。步驟T15、更新后的矢量多邊形1中矢量點的數目為3,故執行凸角頂點的尋找操作;步驟T16、根據更新后的Y方向排序結果,在矢量多邊形1中找到一個凸角頂點 P3,以及,該凸角頂點P3及其前點P2和后點Pl形成的三角形{P3,Pl, P2};步驟T17、由于矢量多邊形1{P1,P2,P3}除了點P3以及它的前點P2,后點Pl夕卜, 再沒有其它點了,顯然不滿足分割條件;步驟T18、參照圖11,輸出三角片爐1沖2,?3},從矢量多邊形1中去除?3點,此時, 由于P3點不存在對應的矢量多邊形,故從排序結果中去除。得到更新后的數據矢量多邊形1 :{P1,P2};Y方向從小到大的排序結果P1,P2 ;X方向從小到大的排序結果P1,P2 ;三角片輸出結果{P5,P6,P4}、{P3,P6,P4}、{Pl,P6,P3}、{Pl,P2,P3}。
步驟T19、更新后的矢量多邊形1{P1,P2}中矢量點的數目為2 < 3,故去矢量多邊形1,由于P1、P2不在其它矢量多邊形中,故從排序結果中去除;步驟T20、當前不存在矢量多邊形,故建模結束,參照圖12,在本發明的一種應用示例中,輸出的建模結果可以為矢量多邊形空Y方向從小到大的排序結果空X方向從小到大的排序結果空三角片輸出結果{P5,P6,P4}、{P3,P6,P4}、{Pl,P6,P3}、{Pl,P2,P3}。以上對本發明所提供的一種矢量字三角片建模過程中圖形元素信息的判斷方法, 進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
1權利要求
1.一種矢量字三角片建模過程中圖形元素信息的判斷方法,其特征在于,包括輸入步驟輸入矢量字數據,其中,所述矢量字為外輪廓線段逼近后矢量多邊形,所述矢量字數據包括多個矢量點的數據;Y方向排序步驟對矢量字數據進行排序,得到坐標Y方向的排序結果; X方向排序步驟對矢量字數據進行排序,得到坐標X方向的排序結果; 判斷步驟根據矢量字數據,以及坐標Y方向和坐標X方向的排序結果,對三角片建模過程中的圖形元素信息進行判斷。
2.如權利要求1所述的方法,其特征在于,所述圖形元素信息為兩條線段的相交信息, 其中,所述線段的端點為矢量點;所述判斷步驟包括獲取第一線段的兩端點在Y方向和X方向的排序結果第一起點Y序號、第一終點Y序號、第一起點X序號、第一終點X序號;獲取第二線段的兩端點在Y方向和X方向的排序結果第二起點Y序號、第二終點Y序號、第二起點χ序號、第二終點χ序號;依據第一判斷規則和該兩條線段的排序結果,獲取該兩條線段的相交信息,其中,所述第一判斷規則為如果第一起點X序號、第一終點X序號中的最小值大于第二起點X序號、第二終點X序號中的最大值,或者,第一起點X序號、第一終點X序號中的最大值小于第二起點X序號、第二終點X 序號中的最小值,或者,第一起點Y序號、第一終點Y序號中的最小值大于第二起點Y序號、第二終點Y 序號中的最大值,或者第一起點Y序號、第一終點Y序號中的最大值小于第二起點Y序號、第二終點Y序號中的最小值,則所述兩條線段不相交。
3.如權利要求1所述的方法,其特征在于,所述圖形元素信息為待判斷點與三角形的位置關系信息,其中,所述待判斷點和三角形3個頂點為矢量點;所述判斷步驟包括獲取所述待判斷點在Y方向和X方向的排序結果γ序號和χ序號; 根據三角形3個頂點的Y方向排序結果,獲取最大Y序號和最小Y序號; 根據三角形3個頂點的X方向排序結果,獲取最大X序號和最小X序號; 依據第二判斷規則,以及,Y序號、X序號、最大Y序號、最小Y序號、最大χ序號和最小 X序號,獲取待判斷點與三角形的位置關系信息,其中,所述第二判斷規則為 如果X序號大于最大X序號, 或者,X序號小于最小X序號, 或者,Y序號大于最大Y序號, 或者,Y序號小于最小Y序號, 則該待判斷點不在三角形內。
4.如權利要求1所述的方法,其特征在于,所述圖形元素信息為凸角頂點信息;所述判斷步驟包括根據坐標Y方向的排序結果,找出Y最大的矢量點,作為凸角頂點。
5.如權利要求1所述的方法,其特征在于,還包括 保存步驟將所述多個矢量點的數據保持到數據數組。
6.如權利要求5所述的方法,其特征在于,所述建模過程為尋找操作在當前矢量多邊形中找到一個凸角頂點PC,以及,該凸角頂點PC及其前點 PP和后點PN形成的三角形{PP,PC, PN};第一判斷操作針對當前矢量多邊形中除PP、PC、PN外的任一矢量點PI,判斷其是否滿足分割條件,若是,則執行分割多邊形操作,否則,執行輸出三角形操作,其中,所述分割條件為,PI在三角形{PP,PC,PN}內,且PI與PC的連線PIPC不與矢量多邊形中不以PI或PC 為端點的線段相交;分割多邊形操作使用PIPC將當前矢量多邊形分割為兩個,并返回尋找操作,分別對所述兩個矢量多邊形進行處理;輸出三角形操作輸出{PP,PC, PN}為一個三角片,并將PC點從當前矢量多邊形的數據數組中去除;第二判斷操作判斷當前矢量多邊形的數據數組中矢量點的數目是否小于3,若是,則執行去除多邊形操作,否則,返回尋找操作;去除多邊形操作去除當前矢量多邊形的數據數組;第三判斷操作判斷是否存在矢量多邊形,若是,則返回尋找操作,否則,執行結束操作;結束操作三角片建模結束。
7.如權利要求1所述的方法,其特征在于,所述Y方向排序步驟包括根據Y坐標大小對所述矢量字數據排序,如果Y坐標相等,則按照X坐標大小進行排序。
8.如權利要求1所述的方法,其特征在于,所述X方向排序步驟包括根據X坐標大小對所述矢量字數據排序,如果X坐標相等,則按照Y坐標大小進行排序。
全文摘要
本發明提供了一種矢量字三角片建模過程中圖形元素信息的判斷方法,包括輸入步驟輸入矢量字數據,其中,所述矢量字為外輪廓線段逼近后矢量多邊形,所述矢量字數據包括多個矢量點的數據;Y方向排序步驟對矢量字數據進行排序,得到坐標Y方向的排序結果;X方向排序步驟對矢量字數據進行排序,得到坐標X方向的排序結果;判斷步驟根據矢量字數據,以及坐標Y方向和坐標X方向的排序結果,對三角片建模過程中的圖形元素信息進行判斷。本發明用以提高矢量字三角片建模的速度。
文檔編號G06T15/00GK102194247SQ20101012424
公開日2011年9月21日 申請日期2010年3月11日 優先權日2010年3月11日
發明者劉鵬 申請人:新奧特(北京)視頻技術有限公司