專利名稱:用在圖形光柵掃描中的凸多邊形遍歷方法和系統的制作方法
技術領域:
本發明涉及圖像處理領域,更具體地涉及一種用在圖形光柵掃描中的凸多邊形遍
歷方法和系統、以及插值方法和系統。
背景技術:
圖形光柵掃描過程是將幾何圖形(例如,線、三角形、多邊形等)映射成顯示器上 的像素的過程。凸多邊形是圖形學中重要的幾何圖形。"凸多邊形遍歷"過程是用來找到所 有位于凸多邊形內部的像素的過程。"凸多邊形插值"過程是計算凸多邊形內部的像素的參 數值(例如,R、G、B等)的過程。邊方程技術是凸多邊形光柵掃描的基礎。"邊方程"指的 是凸多邊形各條邊的直線方程。位于凸多邊形內部的像素的各條邊方程的值同時為正或同 時為負。基于這個性質,可以使用邊方程來判斷一個像素是否位于凸多邊形的內部。
傳統的凸多邊形光柵掃描方法是將凸多邊形劃分成一系列三角形然后利用三角 形的光柵掃描方法來實現整個凸多邊形的光柵掃描過程的方法。由于劃分成三角形后引入 了大量的多余邊,使得傳統的凸多邊形光柵掃描方法需要的運算量很大,所以凸多邊形光 柵掃描過程耗時較長,占用的計算設備的計算資源較多。
發明內容
鑒于以上所述的一個或多個問題,本發明提供了一種用在圖形光柵掃描中的凸多 邊形遍歷方法和系統、以及插值方法和系統。 根據本發明實施例的用在圖形光柵掃描中的凸多邊形遍歷方法,包括以下步驟 S302,根據凸n邊形的n個頂點的坐標值,構造用在對凸n邊形進行光柵掃描的過程中的兩 個邊界框,其中,n為大于2的整數;S304,為該兩個邊界框中的每一個設置遍歷起始位置; 以及S306,分別從該兩個邊界框中的每一個的遍歷起始位置開始,對位于該兩個邊界框中 的每一個中的凸n邊形部分進行遍歷。 根據本發明實施例的用在圖形光柵掃描中的凸多邊形遍歷系統,包括邊界框構
造單元,用于根據凸n邊形的n個頂點的坐標值,構造用在對凸n邊形進行光柵掃描的過程
中的兩個邊界框,其中,n為大于2的整數;起始位置設置單元,用于為該兩個邊界框中的每
一個設置遍歷起始位置;以及圖形遍歷單元,用于從該兩個邊界框中的每一個的遍歷起始
位置開始,對位于該兩個邊界框中的每一個中的凸n邊形部分進行遍歷。 根據本發明實施例的用在圖形光柵掃描中的凸多邊形插值方法,包括以下步驟
S702,將凸多邊形從絕對坐標系轉換到以凸多邊形的任意一邊為坐標軸的相對坐標系;
S704,根據位于凸多邊形內的待插值像素在該相對坐標系中的Y軸坐標值和凸多邊形的每
條邊的頂點在該相對坐標系中的Y軸坐標值,為待插值像素選擇相交邊;以及S706,利用該
相交邊的頂點的參數值,插值得到待插值像素的參數值。 根據本發明實施例的用在圖形光柵掃描中的凸多邊形插值系統,包括坐標系轉 換單元,用于將凸多邊形從絕對坐標系轉換到以凸多邊形的任意一邊為坐標軸的相對坐標
6系;相交邊選擇單元,用于根據位于凸多邊形內的待插值像素在該相對坐標系中的Y軸坐 標值和凸多邊形的每條邊的頂點在該相對坐標系中的Y軸坐標值,為待插值像素選擇相交 邊;以及參數值計算單元,用于利用該相交邊的頂點的參數值,插值得到待插值像素的參數值。 本發明避免了將凸多邊形劃分成三角形后引入的大量多余邊,從而使得凸多邊形 光柵掃描方法/系統需要的運算量變小,所以凸多邊形光柵掃描過程耗時變短,占用的計 算設備的計算資源變少。
圖1示出了凸多邊形光柵掃描系統的示意框圖; 圖2示出了根據本發明實施例的用在圖1所示系統中的設置模塊和遍歷模塊的示 意框圖; 圖3示出了根據本發明實施例的用在圖2所示模塊中的凸多邊形遍歷方法的流程 圖; 圖4示出了根據本發明實施例的構造兩個邊界框的各種情況的示意圖; 圖5示出了根據本發明實施例的兩個邊界框的遍歷起始位置的示意圖; 圖6示出了計算每個邊界框中的每一個掃描行的起始掃描點的過程的示意圖; 圖7示出了根據本發明實施例的用在圖2所示模塊中的凸多邊形插值方法的流程 圖;以及 圖8示出了根據本發明實施例的相對坐標系以及該坐標系中的待插值像素點及 其相交邊和相交點的示意圖。
具體實施例方式
圖l示出了凸多邊形光柵掃描系統的示意圖。如圖l所示,該凸多邊形光柵掃描 系統包括頂點存儲器102、變換和投影模塊104、設置和遍歷模塊106、幀緩存模塊108、以及 顯示模塊IIO。在對凸多邊形進行光柵掃描的過程中,首先將頂點信息(原始坐標)從頂點 存儲器中讀出。然后,將頂點的原始坐標通過變換和投影模塊的運算轉換成光柵掃描系統 的設備坐標。接著,設置和遍歷模塊106使用頂點的設備坐標來計算哪些像素位于凸多邊 形內部,并且計算這些位于凸多邊形內部的像素的參數值(顏色/紋理)。最后,將這些像 素的參數值寫入幀緩存模塊,并通過顯示模塊顯示出來。 圖2示出了根據本發明實施例的用在圖1所示系統中的設置模塊和遍歷模塊的示 意框圖。如圖2所示,設置和遍歷模塊具體分為設置模塊和遍歷模塊。其中,設置模塊利用 凸多邊形的頂點坐標來計算凸多邊形的各條邊的邊方程并構造掃描邊界框。遍歷模塊利用 凸多邊形各條邊的邊方程和邊界框信息判斷邊界框中的哪些像素位于凸多邊形內部并計 算這些內部像素的參數值。 圖3示出了根據本發明實施例的用在圖2所示模塊中的凸多邊形遍歷方法的流程 圖。如圖3所示,該凸多邊形遍歷方法包括以下三個步驟S302,根據凸n邊形的n個頂點 的坐標值,構造用在對凸n邊形進行光柵掃描的過程中的兩個邊界框,其中,n為大于2的 整數;S304,為該兩個邊界框中的每一個設置遍歷起始位置;以及S306,分別從該兩個邊界框中的每一個的遍歷起始位置開始,對位于該兩個邊界框中的每一個中的凸n邊形部分進 行遍歷。 下面詳細描述圖3所示方法中的步驟S302。假設,凸多邊形的頂點為V。、W…、 Vn。其中,每個頂點的坐標為(Xi, Yi), i = 0、1、2、…、n。這里的Xi和Yi均為浮點值。用 在對凸n邊形進行光柵掃描的過程中的兩個邊界框通過以下過程得到
首先,獲取凸多邊形的頂點的X軸坐標值中的最小值和最大值、以及Y軸坐標值中 的最小值和最大值 fxmin = min(X。, X" X2...Xn) ;fxmax = max(X。, Xn X2...Xn);
fymin = min(Y。, Y丄,Y2...Yn) ;fymax = max(Y。, Y丄,Y2...Yn)。 其中,min() 、max()函數返回n個變量的最大值和最小值。fxmin、 fxmax、 fymin、 fymax均為浮點值。 然后,根據以上獲取的凸多邊形的頂點的X軸坐標值中的最小值和最大值,找出
凸多邊形的最左邊的頂點V^t(其中,最左邊的頂點的X軸坐標值Xlrft = fxmin)。 接著,根據凸多邊形的最左邊的頂點的Y軸坐標值(Ylrft)與以上獲取的凸多邊形
的頂點的Y軸坐標值的最小值和最大值的關系,構造用在對凸多邊形進行光柵掃描的過程
中的邊界框(圖4示出了構造兩個邊界框的以下三種情況) 情形1, Yleft = fymin 。
在這種情形下,上邊界框為空,下邊界框定義如下fxmin_bot ==fxmin ^fxmax_bot ==fxmax ;fymin_bot ==fymin ^fymax_bot ==fymax ;xmin_bot =ceil(fxmin_bot ==fxmin);xmax_bot =floor(fxmax_bot=fxmax)ymin_bot =ceil(fymin_bot ==fymin);ymax_bot =floor(fymax_bot=fymax)。 其中,fxmin_bot 、 fxmax_bot 、 fymin_bot 、 fymax_bot表示下邊界框在X方向的最 大最小值(浮點)以及在Y方向的最大最小值(浮點)。xmin_bot、 xmax_bot、 ymin_bot、 ymax_bot表示下邊界框在x方向的最大/最小值(整點)以及在y方向的最大最小值(整 點)。ceil(float a)函數返回不小于a的最小整數,例如,ceil(1.5) =2。 Floor(float a)函數返回不大于a的最大整數,例如,floor(1.5) = 1。 其中,當凸多邊形的頂點位于顯示平面之外時,假設顯示平面的顯示范圍為, [clip_ymin, clip_ymax],需要進行如下裁剪操作 if (xmin_bot < clip_xmin)xmin_bot = clip_xmin ; if (ymin_bot < clip_ymin) ymin_bot = clip_ymin ; if (xmax_bot 〉 clip_xmax)xmax_bot = clip_xmax ; if (ymax_bot 〉 clip_ymax)ymax_bot = clip_ymax。 經過以上過程,可以得到下邊界框的四個頂點的坐標(xmin_bot, ymin_bot), (xmin_bot, ymax_bot), (xmax_bot, ymin—bot), (xmax_bot, ymax_bot)。情形2, Yleft = fymax。
在這種情形下,下邊界框為空,上邊界框定義如下 fxmin—top = fxmin fxmax_top = fxmax fymin_top = fymin fymax_top = fymax
xmin—top = ceil (fxmin—top) ;xmax—top = floor(fxmax—top); ymin—top = ceil (fymin—top) ;ymax—top = floor (fymax—top)。
同樣,如上所述,當凸多邊形的頂點位于顯示平面之外時,假設顯示平面的顯示范
圍為[clip一xmin, clip—xmax] , [clip—ymin, clip—ymax],需要進行如下裁剪操作
if(xmin_top < clip—xmin)xmin_top = clip_xmin if(ymin_top < clip—ymin)ymin_top = clip_ymin if(xmax—top 〉 clip—xmax)xmax—top = clip—xmax if(ymax_top 〉 clip—ymax)ymax—top = clip—ymax。
經過以上過程,可以得到上邊界框的四個頂點的坐標(xmin_top , ymin_top),
(xmin—top, ymax—top) , (xmax—top, ymin—top) , (xmax_top, ymax_top)
情開;3, fymin < Yleft < fymax。 在這種情形下,上邊界框定義如下 fxmin_top = fxmin fxmax_top = fxmax fymin_top = fymin fymax—top = Yleft ; xmin_top 二 ceil(fxmin_top); xmax_top = floor(fxmax_top); ymin—top = ceil(fymin—top); ymax—top = floor(fymax—top)。 下邊界框定義如下 fxmin_bot 二 fxmin ;
fxmax_bot = fxmax ; fymin_bot = Yleft ; fymax_bot = fymax ; xmin—bot = ceil(fxmin—bot); xmax—bot = floor(fxmax_bot); ymin_bot = ceil(fymin_bot); ymax_bot = floor(fymax_bot)。
同樣,如上所述,當凸多邊形的頂點位于顯示平面之外時,假設顯示平面的顯示范
圍為[clip一xmin, clip—xmax] , [clip—ymin, clip—ymax],需要進行女口下裁剪操作
if (xmin_top < clip_xmin)xmin—top = clip_xmin ;
if (ymin—top < clip—ymin) ymin—top = clip—ymin ;
if (xmax_top 〉 clip—xmax)xmax_top = clip_xmax ;
if (ymax_top 〉 clip—ymax)ymax_top = clip_ymax ;
if(xmin_bot < clip_xmin)xmin_bot = clip_xmin ;
if (ymin_bot < clip_ymin)ymin_bot = clip_ymin ;
if (xmax_bot 〉 clip_xmax)xmax_bot = clip_xmax ;
if (ymax_bot 〉 clip_ymax)ymax_bot = clip_ymax。 過以上過程,可以得到上邊界框的四個頂點的坐標為(xmin_top, ymin_top), (xmin—top, ymax—top) , (xmax—top, ymin—top) , (xmax—top, ymax—top),下邊界框的四個丁頁 點的坐標為(xmin_bot, ymin_bot) , (xmin_bot, ymax_bot) , (xmax_bot, ymin_bot) , (xmax— bot, ymax_bot)。 圖5示出了根據本發明實施例的兩個邊界框的遍歷起始位置的示意圖。如圖5所 示,上邊界框的遍歷起始位置為上邊界框的左下角,下邊界框的遍歷起始位置為下邊界框 的左上角。并且,在上邊界框中,按照從左到右、從下到上的方向對位于上邊界框中的凸多 邊形部分進行遍歷,在下邊界框中,按照從左到右、從上到下的方向對位于下邊界框中的凸 多邊形部分進行遍歷。 圖6示出了計算每個邊界框中的每一個掃描行的起始掃描點的過程的示意圖。這 個過程通過自適應地調整各掃描行的起始掃描點來遍歷邊界框。掃描過程包括三個階段
1.從每一行的起始掃描點開始,沿著水平方向找到位于凸多邊形內的像素點。其 中,像素點位于凸多邊形內等價于 e。(x, y) > 0 & & ejx, y) > 0 & & ... & & en(x, y) > 0。
其中,ei(x, y) (i = 0, 1,2…)是凸多邊形各條邊的邊方程:
e0(x, y) = a0*x+b0*y+c0 ;
一i(x, y) = E^氺x+bi氺y+c工;
e2(x, y) = a2*x+b2*y+c2 ;
... en(x, y) = an*x+bn*y+cn。 2.當像素p(x, y)滿足以下條件時,結束當前行的掃描過程InRightPolygon(x,
y)為真;或者P(x, y)位于邊界框外。其中,InRightPolygon(x, y)函數是用來判斷像素
P(x,y)是否位于凸多邊形的右邊的函數。當P(x,y)相對于凸多邊形的某一條邊的邊方程
值小于O并且這條邊的法線的水平分量不大于O時,判定p(x,y)位于凸多邊形的右邊。具
體地,該函數定義如下 InRightPolygon(x, y) { if ((e。(x,y) < 0 & & a0 <= 0) I I (ejx,y) < 0 & & a丄<=0) I |. I I (en(x,y)
< 0 & & an < = 0)) return true 5 else return false ; }
3.計算下一個掃描行的起始掃描點。下一個掃描行的起始掃描點通過計算之前兩 行中第一個凸多邊形內部點之間的距離來得到。如圖6所出,當前掃描行的第一個凸多邊 形內部點的坐標為(xc,yc),之前掃描行的第一個凸多邊形內部點的坐標為(鄧,yp),下一 個掃描行的起始掃描位置(xn, yn)計算方法如下
delta_x = xc = = xp 7 0 :xc_xp_l ;
delta_y = top_box == True —1:1;
xn = xc+delta_x ;
yn = yc+delta_y。 其中,delta—x是xc和xp之間的距離。如果xc = xp,delta_x為O,否則delta_ x等于xc-鄧-l。 delta_y取決于當前遍歷的是上邊界框還是下邊界框,如果遍歷的是上邊 界框,則delta—y為-l,否則為1。 可以通過用在圖形光柵掃描中的凸多邊形遍歷系統來實現上述方法。該凸多邊形 遍歷系統包括邊界框構造單元,用于根據凸n邊形的n個頂點的坐標值,構造用在對凸n 邊形進行光柵掃描的過程中的兩個邊界框,其中,n為大于2的整數;起始位置設置單元,用 于為該兩個邊界框中的每一個設置遍歷起始位置;以及圖形遍歷單元,用于從該兩個邊界 框中的每一個的遍歷起始位置開始,對位于該兩個邊界框中的每一個中的凸n邊形部分進 行遍歷。其中,所述兩個邊界框包括上邊界框和下邊界框,上邊界框的遍歷起始位置為上邊 界框的左下角,下邊界框的遍歷起始位置為所述下邊界框的左上角。 其中,邊界框構造單元包括最值獲取模塊,用于獲取凸n邊形的n個頂點的X軸 坐標值中的最大值和最小值、以及Y軸坐標值中的最大值和最小值;框構造模塊,用于根據 凸n邊形的n個頂點的X軸坐標值中的最大值和最小值、以及Y軸坐標值中的最大值和最 小值,構造所述兩個邊界框。 在凸n邊形的最左邊的頂點的Y軸坐標值是凸n邊形的n個頂點的Y軸坐標值中 的最小值或最大值的情況下,邊界框構造單元將所述兩個邊界框中的其中一個邊界框構造 為空,并將所述兩個邊界框中的另一個邊界框構造為該另一個邊界框的左邊兩個頂點的 X軸坐標值為不小于凸n邊形的n個頂點的X軸坐標值中的最小值的最小整數、右邊兩個 頂點的X軸坐標值為不大于凸n邊形的n個頂點的X軸坐標值中的最大值的最大整數、上 邊兩個頂點的Y軸坐標值為不小于凸n邊形的n個頂點的Y軸坐標值中的最小值的最小整 數、并且下邊兩個頂點的Y軸坐標值為不大于凸n邊形的n個頂點的Y軸坐標值中的最大 值的最大整數。 在凸n邊形的最左邊的頂點的Y軸坐標值在凸n邊形的n個頂點的Y軸坐標值中 的最大值和最小值之間的情況下,邊界框構造單元將凸n邊形的上邊界框構造為上邊界 框的左邊兩個頂點的X軸坐標值為不小于凸n邊形的X軸坐標值中的最小值的最小整數, 右邊兩個頂點的X軸坐標值為不大于凸n邊形的X軸坐標值中的最大值的最大整數,上邊 兩個頂點的Y軸坐標值為不小于凸n邊形的Y軸坐標值中的最小值的最小整數,下邊兩個 頂點的Y軸坐標值為不大于凸n邊形的最左邊的頂點的Y軸坐標值的最大整數,并將凸n 邊形的下邊界框構造為下邊界框的左邊兩個頂點的X軸坐標值為不小于凸n邊形的X軸 坐標值中的最小值的最小整數,右邊兩個頂點的X軸坐標值為不大于凸n邊形的X軸坐標 值中的最大值的最大整數,上邊兩個頂點的Y軸坐標值為不小于凸n邊形的最左邊的頂點的Y軸坐標值中的最小整數,下邊兩個頂點的Y軸坐標值為不大于凸n邊形的Y軸坐標值 中的最大值的最大整數。 其中,在上邊界框和/或下邊界框的一個或多個頂點位于顯示平面之外的情況 下,邊界框構造單元根據顯示平面的顯示范圍對上邊界框和/或下邊界框進行裁剪。圖形 遍歷單元通過自適應地調整各掃描行的起始掃描點來對位于所述兩個邊界框中的每一個 中的凸n邊形部分進行遍歷,通過計算當前掃描行的前兩個掃描行中的第一個處于凸n邊 形內部的點之間的距離來獲取當前掃描行的起始掃描點。 圖7示出了根據本發明實施例的用在圖2所示模塊中的凸多邊形插值方法的流程 圖。如圖7所示,該凸多邊形插值方法包括以下三個步驟S702,將凸多邊形從絕對坐標系 轉換到以凸多邊形的任意一邊為坐標軸的相對坐標系;S704,根據位于凸多邊形內的待插 值像素在該相對坐標系中的Y軸坐標值和凸多邊形的每條邊的頂點在該相對坐標系中的Y 軸坐標值,為待插值像素選擇相交邊;以及S706,利用該相交邊的頂點的參數值,插值得到 待插值像素的參數值。 具體地,首先要將多邊形從原來的絕對坐標系轉換到相對的位于多邊形上的坐標
系。這樣做是為了避免多邊形在旋轉過程中會造成插值的不一致。多邊形上的坐標系以多
邊形的任意一條邊(ViVi+1)作為X軸,以邊(ViVi+1)的法線作為Y軸,以、作為原點。多邊
形上的坐標系中的Y坐標通過邊(ViVi+1)的邊方程計算得到,X坐標通過邊(ViVi+1)的法線
的邊方程計算得到。其中,坐標變換過程如下 邊(ViVi+1)的邊方程定義為一i(x, y) = a^x+b一y+Ci ; 邊(ViVi+1)的法線的邊方程定義為rii(x, y) = d^x+e一y+fi ;假設一個點在原先的坐標系中的坐標為P(x, y),經過坐標變換后的坐標為P(x',
y,),其中,x, =rii(x,y) = di氺x+ei氺y+fi, y, = ei (x, y) = ai氺x+bi氺y+ci。坐+示,矛免完
成后,將待插值像素的Y坐標與多邊形每條邊的兩個頂點的Y坐標進行比較,以選擇待插值
像素的相交邊。假設多邊形的每條邊的兩個頂點為Va(、,y》和Yb(Xb,yJ。如果該條邊為
相交邊,則其頂點的Y坐標應該滿足以下條件ya < = y < = yb I I yb < = y < = ya。 在利用相交邊進行插值運算的步驟中,通過相交邊的兩個頂點上的參數值插值得
到相交點上的參數值,再利用兩個相交點上的參數值插值得到待插值像素的參數值。 圖8示出了根據本發明實施例的相對坐標系以及該坐標系中的待插值像素點及
其相交邊和相交點的示意圖。如圖8所示,假設待插值像素的兩條相交邊為^和e。d。 eab
的兩個頂點為Va(xa, ya)和Vb(xb, yb) 。 ecd的兩個頂點為Vc(xc, yc)和Vd(xd, yd)。待插值像
素為V(x, y) 。 eab的相交點為Vab(xab, yab) 。 e。d的相交點為V。d(x。d, y。d)。以上坐標均位于
多邊形上的坐標系中。 Vab的坐標計算如下 xab = (xa* (yb_y) +xb* (y-ya)) / (yb_ya); yab = y; V。d的坐標計算如下 xcd = (xc* (yd—y) +xd* (y—yc)) / (yd—yc); ycd = y; Va, Vb, Vc, Vd的參數值為Pa, Pb, Pc, Pd。
Vab的參數值為Pw計算如下 Pab = (Pa* (xb-xab) +Pb* (xab-xa)) / (xb-xa); V。d的參數值為P。d,計算如下 Pcd = (Pc* (xd-xcd) +Pd* (xcd-xc)) / (xd-xc); 待插值像素V(x, y)的參數值為P,計算如下 P = (Pab* (xcd-x) +Pcd* (x-xab)) / (xcd-xab)。 可以通過用在圖形光柵掃描中的凸多邊形插值系統來實現上述方法。該凸多邊形 插值系統包括坐標系轉換單元,用于將凸多邊形從絕對坐標系轉換到以凸多邊形的任意 一邊為坐標軸的相對坐標系;相交邊選擇單元,用于根據位于凸多邊形內的待插值像素在 所述相對坐標系中的Y軸坐標值和凸多邊形的每條邊的頂點在相對坐標系中的Y軸坐標 值,為待插值像素選擇相交邊;以及參數值計算單元,用于利用相交邊的頂點的參數值,插 值得到待插值像素的參數值。其中,該相對坐標系是以凸多邊形的任意一條邊的一個頂點 作為原點、以所述原點所在的邊作為X軸、并以所述原點所在的邊的法線作為Y軸的坐標 系。待插值像素的Y軸坐標值和凸多邊形的每條邊的頂點的Y軸坐標值是通過該相對坐標 系的X軸的邊方程計算得到的。待插值像素的X坐標值和凸多邊形的每條邊的頂點的X軸 坐標值是通過該相對坐標系的Y軸的邊方程計算得到的。 相交邊選擇單元通過比較待插值像素在所述相對坐標系中的Y軸坐標值和凸多 邊形的每條邊的頂點在所述相對坐標系中的Y軸坐標值,為待插值像素選擇相交邊。
參數值計算單元包括第一計算單元,用于利用相交邊的頂點的參數值,插值得到 待插值像素所在掃描行與相交邊的相交點的參數值;第二計算單元,利用待插值像素所在 掃描行與相交邊的相交點的參數值,插值得到待插值像素的參數值。 本領域技術人員將理解,還存在可用于實現本發明實施例的更多可選實施方式和 改進方式,并且上述實施方式和示例僅是一個或多個實施例的說明。因此,本發明的范圍僅 由所附權利要求書限制。
權利要求
一種用在圖形光柵掃描中的凸多邊形遍歷方法,其特征在于,包括以下步驟S302,根據凸n邊形的n個頂點的坐標值,構造用在對所述凸n邊形進行光柵掃描的過程中的兩個邊界框,其中,n為大于2的整數;S304,為所述兩個邊界框中的每一個設置遍歷起始位置;以及S306,分別從所述兩個邊界框中的每一個的遍歷起始位置開始,對位于所述兩個邊界框中的每一個中的凸n邊形部分進行遍歷。
2. 根據權利要求1所述的凸多邊形遍歷方法,其特征在于,所述兩個邊界框包括上邊 界框和下邊界框,其中,所述上邊界框的遍歷起始位置為所述上邊界框的左下角,所述下邊 界框的遍歷起始位置為所述下邊界框的左上角。
3. 根據權利要求2所述的凸多邊形遍歷方法,其特征在于,所述步驟S302包括以下子 步驟獲取所述凸n邊形的n個頂點的X軸坐標值中的最大值和最小值、以及Y軸坐標值中 的最大值和最小值;根據所述凸n邊形的n個頂點的X軸坐標值中的最大值和最小值、以及Y軸坐標值中 的最大值和最小值,構造所述兩個邊界框。
4. 根據權利要求3所述的凸多邊形遍歷方法,其特征在于,當所述凸n邊形的最左邊 的頂點的Y軸坐標值是所述凸n邊形的n個頂點的Y軸坐標值中的最小值或最大值時,將 所述兩個邊界框中的其中一個邊界框構造為空,并將所述兩個邊界框中的另一個邊界框構 造為所述另一個邊界框的左邊兩個頂點的X軸坐標值為不小于所述凸n邊形的n個頂點 的X軸坐標值中的最小值的最小整數、右邊兩個頂點的X軸坐標值為不大于所述凸n邊形 的n個頂點的X軸坐標值中的最大值的最大整數、上邊兩個頂點的Y軸坐標值為不小于所 述凸n邊形的n個頂點的Y軸坐標值中的最小值的最小整數、并且下邊兩個頂點的Y軸坐 標值為不大于所述凸n邊形的n個頂點的Y軸坐標值中的最大值的最大整數。
5. 根據權利要求3所述的凸多邊形遍歷方法,其特征在于,當所述凸n邊形的最左邊的 頂點的Y軸坐標值在所述凸n邊形的n個頂點的Y軸坐標值中的最大值和最小值之間時,將所述凸n邊形的上邊界框構造為所述上邊界框的左邊兩個頂點的X軸坐標值為不 小于所述凸n邊形的X軸坐標值中的最小值的最小整數,右邊兩個頂點的X軸坐標值為不 大于所述凸n邊形的X軸坐標值中的最大值的最大整數,上邊兩個頂點的Y軸坐標值為不 小于所述凸n邊形的Y軸坐標值中的最小值的最小整數,下邊兩個頂點的Y軸坐標值為不 大于所述凸n邊形的最左邊的頂點的Y軸坐標值的最大整數,并將所述凸n邊形的下邊界框構造為所述下邊界框的左邊兩個頂點的X軸坐標值為 不小于所述凸n邊形的X軸坐標值中的最小值的最小整數,右邊兩個頂點的X軸坐標值為 不大于所述凸n邊形的X軸坐標值中的最大值的最大整數,上邊兩個頂點的Y軸坐標值為 不小于所述凸n邊形的最左邊的頂點的Y軸坐標值中的最小整數,下邊兩個頂點的Y軸坐 標值為不大于所述凸n邊形的Y軸坐標值中的最大值的最大整數。
6. 根據權利要求4或5所述的凸多邊形遍歷方法,其特征在于,當所述上邊界框和/或 所述下邊界框的一個或多個頂點位于顯示平面之外時,根據所述顯示平面的顯示范圍對所 述上邊界框和/或所述下邊界框進行裁剪。
7. 根據權利要求1所述的凸多邊形遍歷方法,其特征在于,在所述步驟S306中,通過自適應地調整各掃描行的起始掃描點來對位于所述兩個邊界框中的每一個中的凸n邊形部 分進行遍歷。
8. 根據權利要求7所述的凸多邊形遍歷方法,其特征在于,通過計算當前掃描行的前 兩個掃描行中的第一個處于所述凸n邊形內部的點之間的距離來獲取所述當前掃描行的 起始掃描點。
9. 一種用在圖形光柵掃描中的凸多邊形遍歷系統,其特征在于,包括 邊界框構造單元,用于根據凸n邊形的n個頂點的坐標值,構造用在對所述凸n邊形進行光柵掃描的過程中的兩個邊界框,其中,n為大于2的整數;起始位置設置單元,用于為所述兩個邊界框中的每一個設置遍歷起始位置;以及 圖形遍歷單元,用于從所述兩個邊界框中的每一個的遍歷起始位置開始,對位于所述兩個邊界框中的每一個中的凸n邊形部分進行遍歷。
10. 根據權利要求9所述的凸多邊形遍歷系統,其特征在于,所述兩個邊界框包括上邊 界框和下邊界框,其中,所述上邊界框的遍歷起始位置為所述上邊界框的左下角,所述下邊 界框的遍歷起始位置為所述下邊界框的左上角。
11. 根據權利要求IO所述的凸多邊形遍歷系統,其特征在于,所述邊界框構造單元包括最值獲取模塊,用于獲取所述凸n邊形的n個頂點的X軸坐標值中的最大值和最小值、 以及Y軸坐標值中的最大值和最小值;框構造模塊,用于根據所述凸n邊形的n個頂點的X軸坐標值中的最大值和最小值、以 及Y軸坐標值中的最大值和最小值,構造所述兩個邊界框。
12. 根據權利要求ll所述的凸多邊形遍歷系統,其特征在于,在所述凸n邊形的最左邊 的頂點的Y軸坐標值是所述凸n邊形的n個頂點的Y軸坐標值中的最小值或最大值的情況 下,所述邊界框構造單元將所述兩個邊界框中的其中一個邊界框構造為空,并將所述兩個 邊界框中的另一個邊界框構造為所述另一個邊界框的左邊兩個頂點的X軸坐標值為不小 于所述凸n邊形的n個頂點的X軸坐標值中的最小值的最小整數、右邊兩個頂點的X軸坐 標值為不大于所述凸n邊形的n個頂點的X軸坐標值中的最大值的最大整數、上邊兩個頂 點的Y軸坐標值為不小于所述凸n邊形的n個頂點的Y軸坐標值中的最小值的最小整數、 并且下邊兩個頂點的Y軸坐標值為不大于所述凸n邊形的n個頂點的Y軸坐標值中的最大 值的最大整數。
13. 根據權利要求ll所述的凸多邊形遍歷系統,其特征在于,在所述凸n邊形的最左邊 的頂點的Y軸坐標值在所述凸n邊形的n個頂點的Y軸坐標值中的最大值和最小值之間的 情況下,所述邊界框構造單元將所述凸n邊形的上邊界框構造為所述上邊界框的左邊兩個頂點的X軸坐標值為不 小于所述凸n邊形的X軸坐標值中的最小值的最小整數,右邊兩個頂點的X軸坐標值為不 大于所述凸n邊形的X軸坐標值中的最大值的最大整數,上邊兩個頂點的Y軸坐標值為不 小于所述凸n邊形的Y軸坐標值中的最小值的最小整數,下邊兩個頂點的Y軸坐標值為不 大于所述凸n邊形的最左邊的頂點的Y軸坐標值的最大整數,并將所述凸n邊形的下邊界框構造為所述下邊界框的左邊兩個頂點的X軸坐標值為 不小于所述凸n邊形的X軸坐標值中的最小值的最小整數,右邊兩個頂點的X軸坐標值為不大于所述凸n邊形的X軸坐標值中的最大值的最大整數,上邊兩個頂點的Y軸坐標值為 不小于所述凸n邊形的最左邊的頂點的Y軸坐標值中的最小整數,下邊兩個頂點的Y軸坐 標值為不大于所述凸n邊形的Y軸坐標值中的最大值的最大整數。
14. 根據權利要求12或13所述的凸多邊形遍歷系統,其特征在于,在所述上邊界框和 /或所述下邊界框的一個或多個頂點位于顯示平面之外的情況下,所述邊界框構造單元根 據所述顯示平面的顯示范圍對所述上邊界框和/或所述下邊界框進行裁剪。
15. 根據權利要求9所述的凸多邊形遍歷系統,其特征在于,所述圖形遍歷單元通過自 適應地調整各掃描行的起始掃描點來對位于所述兩個邊界框中的每一個中的凸n邊形部 分進行遍歷。
16. 根據權利要求15所述的凸多邊形遍歷系統,其特征在于,所述圖形遍歷單元通過 計算當前掃描行的前兩個掃描行中的第一個處于所述凸n邊形內部的點之間的距離來獲 取所述當前掃描行的起始掃描點。
17. —種用在圖形光柵掃描中的凸多邊形插值方法,其特征在于,包括以下步驟 S702,將凸多邊形從絕對坐標系轉換到以所述凸多邊形的任意一邊為坐標軸的相對坐標系;S704,根據位于所述凸多邊形內的待插值像素在所述相對坐標系中的Y軸坐標值和所 述凸多邊形的每條邊的頂點在所述相對坐標系中的Y軸坐標值,為所述待插值像素選擇相 交邊;以及S706,利用所述相交邊的頂點的參數值,插值得到所述待插值像素的參數值。
18. 根據權利要求17所述的凸多邊形插值方法,其特征在于,所述相對坐標系是以所 述凸多邊形的任意一條邊的一個頂點作為原點、以所述原點所在的邊作為X軸、并以所述 原點所在的邊的法線作為Y軸的坐標系。
19. 根據權利要求18所述的凸多邊形插值方法,其特征在于,所述待插值像素的Y軸坐 標值和所述凸多邊形的每條邊的頂點的Y軸坐標值是通過所述相對坐標系的X軸的邊方程 計算得到的。
20. 根據權利要求19所述的凸多邊形插值方法,其特征在于,所述待插值像素的X坐標 值和所述凸多邊形的每條邊的頂點的X軸坐標值是通過所述相對坐標系的Y軸的邊方程計 算得到的。
21. 根據權利要求17所述的凸多邊形插值方法,其特征在于,通過比較所述待插值像 素在所述相對坐標系中的Y軸坐標值和所述凸多邊形的每條邊的頂點在所述相對坐標系 中的Y軸坐標值,為所述待插值像素選擇相交邊。
22. 根據權利要求17所述的凸多邊形插值方法,其特征在于,所述步驟S706包括以下 子步驟利用所述相交邊的頂點的參數值,插值得到所述待插值像素所在掃描行與所述相交邊 的相交點的參數值;利用所述待插值像素所在掃描行與所述相交邊的相交點的參數值,插值得到所述待插 值像素的參數值。
23. —種用在圖形光柵掃描中的凸多邊形插值系統,其特征在于,包括 坐標系轉換單元,用于將凸多邊形從絕對坐標系轉換到以所述凸多邊形的任意一邊為坐標軸的相對坐標系;相交邊選擇單元,用于根據位于所述凸多邊形內的待插值像素在所述相對坐標系中的 Y軸坐標值和所述凸多邊形的每條邊的頂點在所述相對坐標系中的Y軸坐標值,為所述待 插值像素選擇相交邊;以及參數值計算單元,用于利用所述相交邊的頂點的參數值,插值得到所述待插值像素的 參數值。
24. 根據權利要求23所述的凸多邊形插值系統,其特征在于,所述相對坐標系是以所 述凸多邊形的任意一條邊的一個頂點作為原點、以所述原點所在的邊作為X軸、并以所述 原點所在的邊的法線作為Y軸的坐標系。
25. 根據權利要求23所述的凸多邊形插值系統,其特征在于,所述待插值像素的Y軸坐 標值和所述凸多邊形的每條邊的頂點的Y軸坐標值是通過所述相對坐標系的X軸的邊方程 計算得到的。
26. 根據權利要求25所述的凸多邊形插值系統,其特征在于,所述待插值像素的X坐標 值和所述凸多邊形的每條邊的頂點的X軸坐標值是通過所述相對坐標系的Y軸的邊方程計 算得到的。
27. 根據權利要求23所述的凸多邊形插值系統,其特征在于,所述相交邊選擇單元通 過比較所述待插值像素在所述相對坐標系中的Y軸坐標值和所述凸多邊形的每條邊的頂 點在所述相對坐標系中的Y軸坐標值,為所述待插值像素選擇相交邊。
28. 根據權利要求23所述的凸多邊形插值系統,其特征在于,所述參數值計算單元包括第一計算單元,用于利用所述相交邊的頂點的參數值,插值得到所述待插值像素所在 掃描行與所述相交邊的相交點的參數值;第二計算單元,利用所述待插值像素所在掃描行與所述相交邊的相交點的參數值,插 值得到所述待插值像素的參數值。
全文摘要
本發明公開了一種用在圖形光柵掃描中的凸多邊形遍歷方法和系統、以及插值方法和系統。其中,該遍歷方法包括以下步驟根據凸n邊形的n個頂點的坐標值,構造用在對凸n邊形進行光柵掃描的過程中的兩個邊界框,其中,n為大于2的整數;為該兩個邊界框中的每一個設置遍歷起始位置;以及分別從該兩個邊界框中的每一個的遍歷起始位置開始,對位于該兩個邊界框中的每一個中的凸n邊形部分進行遍歷。通過本發明,可以減少在對圖形光柵掃描的過程中的計算量,從而可以增快圖形光柵掃描設備的處理速度,節省處理時間。
文檔編號G09G5/36GK101753767SQ200810184069
公開日2010年6月23日 申請日期2008年12月15日 優先權日2008年12月15日
發明者洲鐮康, 白向暉, 譚志明 申請人:富士通株式會社