用在图形光栅扫描中的凸多边形遍历方法和系统的制作方法

文档序号:2549667阅读:220来源:国知局
专利名称:用在图形光栅扫描中的凸多边形遍历方法和系统的制作方法
技术领域
本发明涉及图像处理领域,更具体地涉及一种用在图形光栅扫描中的凸多边形遍
历方法和系统、以及插值方法和系统。
背景技术
图形光栅扫描过程是将几何图形(例如,线、三角形、多边形等)映射成显示器上 的像素的过程。凸多边形是图形学中重要的几何图形。"凸多边形遍历"过程是用来找到所 有位于凸多边形内部的像素的过程。"凸多边形插值"过程是计算凸多边形内部的像素的参 数值(例如,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日
发明者洲镰康, 白向晖, 谭志明 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1