计算机图像处理中多边形的三角化方法及其系统的制作方法

文档序号:6441069阅读:290来源:国知局
专利名称:计算机图像处理中多边形的三角化方法及其系统的制作方法
技术领域
本发明涉及计算机图像处理领域,特别涉及一种有序活动边表的三角化技术。
背景技术
计算机图像处理领域中的三角化算法是把一系列复杂多变的多边形切分成一组三角形,使得三角化的形状匀称和计算速度快。由于在图形处理器内部实现了任意三角形的光栅化,因此对于速度的要求更为突出。现有三角化技术主要如下:Delaunay三角剖分法,其应用最为广泛。从Delaunay三角网的性质上可以发现这些性质=Delaunay三角网是唯一的,三角网的外边界构成了点集P的凸多边形“外壳”,没有任何点在三角形的外接圆内部。如果一个三角网满足上述条件,则称为Delaunay三角网。如果将三角网中的每个三角形的最小角进行升序排列,则Delaunay三角网的排列得到的数值最大,从这个意义上讲,Delaunay三角网是“最接近于规则化”的三角网。但是,本发明的发明人发现,若从时间复杂度上讲,Delaunay算法得到的三角形数目较多形状较小,计算量大、复杂度高,处理速度比较慢。

发明内容
本发明的目的在于提供一种计算机图像处理中多边形的三角化方法及其系统,减少了不必要的三角形切分,所组成的三角形数目较少,形状较大,大大减少了计算机图形处理部件的计算量,后续在三角形基础上的图形处理效率较高。为解决上述技术问题,本发明的实施方式公开了一种计算机图像处理中多边形的三角化方法,包括以下步骤:对多边形的各个顶点根据指定坐标轴的坐标值大小进行排序;根据经排序的各顶点建立活动边表;依次发出穿过经排序的各顶点且垂直于指定坐标轴的扫描线,对于每一条穿过当前顶点的当前扫描线,执行以下步骤:根据活动边表得到对应的活动边,对当前扫描线穿过的活动边进行计数,根据计数确定各活动边之间区域的有效性,仅在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形,供计算机的图形处理器渲染图像使用。本发明的实施方式还公开了一种计算机图像处理中多边形的三角化系统,包括以下模块:排序模块,用于对多边形的各个顶点根据指定坐标轴的坐标值大小进行排序;建表模块,用于根据经排序模块排序的各顶点建立活动边表;扫描模块,用于依次发出穿过经排序模块排序的各顶点且垂直于指定坐标轴的扫描线;获取模块,用于对于扫描模块发出的每一条穿过当前顶点的当前扫描线,根据建表模块建立的活动边表得到对应的活动边;计数模块,用于对于扫描模块发出的每一条穿过当前顶点的当前扫描线,对当前扫描线穿过的活动边进行计数;确定模块,用于根据计数模块得到的计数,确定获取模块获取的各活动边之间区域的有效性;组建模块,用于仅在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形,供计算机的图形处理器渲染图像使用。本发明实施方式与现有技术相比,主要区别及其效果在于:仅在与顶点连通的当前扫描线之上的有效区域组建三角形,减少了不必要的三角形切分,所组成的三角形数目较少,形状较大,大大减少了计算机图形处理部件的计算量,且后续在三角形基础上的图形处理效率较高。进一步地,由顶点的下边表的有序及顶点的有序保证了活动边的有序,因此在每次发扫描线时不需要对所有活动边求交,对交点排序,所以计算量大大减少;进一步地,在有序活动边表的三角化方法中,使用奇偶填充规则,通过只对在当前扫描线之上的当前顶点的最近左边和最近右边之间的有效区域,组建三角形,从而进一步减少了计算量;进一步地,在有序活动边表的三角化方法中,使用非零填充规则,通过只对在当前扫描线之上的当前顶点的最远左边和最远右边之间的有效区域,组建三角形,从而进一步减少了计算量;进一步地,在对多边形的顶点排序时,由于对顶点索引表进行的快速排序只交换指针而不交换数据,使得内存数据在内存中的位置挪移最少,减少了系统负载,提高了图形
处理效率。


图1是本发明第一实施方式中一种计算机图像处理中多边形的三角化方法的流程不意图;图2是本发明第二实施方式中一种计算机图像处理中多边形的三角化方法的流程不意图;图3是本发明第二实施方式中一种计算机图像处理中多边形的三角化方法的流程不意图;图4是本发明第二实施方式中一种计算机图像处理中多边形的三角化方法的一种多边形示意图;图5(a)是本发明第二实施方式中一种计算机图像处理中多边形的三角化方法的一种多边形示意图;图5(b)是本发明第二实施方式中一种计算机图像处理中多边形的三角化方法的一种多边形效果示意图;图5(c)是本发明第二实施方式中一种计算机图像处理中多边形的三角化方法的一种多边形效果示意图;图6(a)是本发明第二实施方式中一种计算机图像处理中多边形的三角化方法的一种多边形示意图;图6(b)是本发明第二实施方式中一种计算机图像处理中多边形的三角化方法的一种多边形效果示意图;图6(c)是本发明第二实施方式中一种计算机图像处理中多边形的三角化方法的一种多边形效果示意图;图7是本发明第三实施方式中一种计算机图像处理中多边形的三角化系统的结构示意图;图8是本发明第四实施方式中一种计算机图像处理中多边形的三角化系统的结构示意图;图9是本发明第四实施方式中一种计算机图像处理中多边形的三角化系统的结构示意图。
具体实施例方式在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。本发明第一实施方式涉及一种计算机图像处理中多边形的三角化方法。图1是该计算机图像处理中多边形的三角化方法的流程示意图。具体地说,如图1所示,该计算机图像处理中多边形的三角化方法包括以下步骤:在步骤101中,对多边形的各个顶点根据指定坐标轴的坐标值大小进行排序。此后进入步骤102,根据经排序的各顶点建立活动边表。将多边形顶点位置及其先后连接关系按序排列生成有序顶点集合,用于表示该多边形,通过对其进行遍历排序即可生成该多边形的活动边表。活动边表的建立方法包括但不限于矢量顶点方式按照坐标方向排序生成活动边表,也可以多边形顶点对角连线的方式生成活动边表。此后进入步骤103,依次发出穿过经排序的某一顶点且垂直于指定坐标轴的扫描线。此后进入步骤104,对于穿过当前顶点的当前扫描线,根据活动边表得到对应的活动边。此后进入步骤105,根据所得到的活动边,对当前扫描线穿过的活动边进行计数。此后进入步骤106,根据计数确定各活动边之间区域的有效性。在本发明的实施方式中,有效区域为可以进行三角化的区域。此后进入步骤107,在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形,供计算机的图形处理器渲染图像使用。仅在与顶点连通的当前扫描线之上的有效区域组建三角形,减少了不必要的三角形切分,所组成的三角形数目较少,形状较大,大大减少了计算机图形处理部件的计算量,后续在三角形基础上的图形处理效率较高。
此后进入步骤108,判断当前顶点是否为有序活动边表中的最后一个顶点。若是,则结束本流程;否则返回步骤103,依次发出穿过经排序的当前顶点的下一顶点且垂直于指定坐标轴的扫描线。本发明第二实施方式涉及一种计算机图像处理中多边形的三角化方法。第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:有序活动边表的三角化通过表中的活动边和顶点的有序,每次发送扫描线时,不必对所有活动边求交以及直接对交点排序,大大减少了计算量。同时,使用相应的法则,确定三角化的有效区域,进一步减少了计算量,提高了图像处理效率。图2是该计算机图像处理中多边形的三角化方法的流程示意图。具体地说,如图2所示,该计算机图像处理中多边形的三角化方法,包括以下步骤:在步骤201中,根据指定坐标轴的坐标值大小和使用快速排序法,对多边形的各个顶点进行排序。此后进入步骤202,根据经排序的各顶点并按照其所对应的活动边的斜率大小排
序建立活动边表。相应地,在活动边表中,每个顶点所对应的活动边包括但不限于根据斜率大小排序,若按照斜率进行活动边排序,则其斜率获取可以通过每条活动边的一顶点与另一顶点之间的横坐标增量DX与纵坐标增量DY的比值DX/DY实现,斜率越小表示越“右边”,斜率越大表示越“左边”,一个顶点发了扫描线,并生成完三角形后,会把其所有已排序的下边,力口入到现有的有序活动边表,构成一个新的有序活动边表,并且已经是排好序的。这样发扫描线找最近、最远的边时,就节省了系统计算工作量,减少了系统负载,提高了系统工作效率。此后进入步骤203,依次发出穿过经排序的当前顶点的下一顶点且垂直于指定坐标轴的扫描线,被扫描线穿过的该下一顶点为当前顶点。由顶点的下边表的有序及顶点的有序保证了活动边的有序,因此不需要每次发扫描线时和所有活动边求交,然后对交点排序,所以计算量大大减少。此后进入步骤204,根据穿过该当前顶点的当前扫描线和活动边表得到对应的活动边。此后进入步骤205,根据活动边及奇偶填充法则对当前扫描线穿过的活动边计数。在有序活动边表的三角化方法中,使用奇偶填充规则,通过只对在当前扫描线之上的当前顶点的最近左边和最近右边之间的有效区域,组建三角形,从而进一减少了计算量。作为本发明的一个优选例,只有在当前扫描线穿过当前顶点的活动边时,才对该活动边及当前扫描线穿过的前一条活动边之间的区域进行计数。此后进入步骤206,找到在当前扫描线之上的当前顶点的最近左边和最近右边,其中该最近左边的左方区域的计数为偶数,该最近左边的右方区域的计数为奇数,该最近右边的左方区域的计数为奇数,该最近右边的右方区域的计数为偶数。此后进入步骤207,仅在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形,由最近上顶点的扫描线、当前扫描线、最近左边和最近右边确定可以进行三角化的有效区域,其中,最近左边或最近右边的上一顶点中最靠近当前扫描线的顶点为最近上顶点。仅在与顶点连通的当前扫描线之上的有效区域组建三角形,减少了不必要的三角形切分,所组成的三角形数目较少,形状较大,大大减少了计算机图形处理部件的计算量,后续在三角形基础上的图形处理效率较高。此后进入步骤208,判断该有效区域是否为四边形。若为四边形,则进入步骤209 ;否则进入步骤210。在步骤209中,由穿过该最近上顶点的扫描线、当前扫描线、最近左边和最近右边围成的一个区域,其中,最近左边或最近右边的上一顶点中最靠近当前扫描线的顶点为最近上顶点,如果该区域为四边形,则以对角线将该四边形划分为两个三角形,在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形,供计算机的图形处理器渲染图像使用,此后进入步骤210。在当前扫描线之上的当前顶点的最近左边和最近右边之间的有效区域确定为三角形或者四边形,之后,通过连接四边形的左上顶点与右下顶点或者右上顶点与左下顶点形成的对角连线,将该四边形再次划分为两个三角形,从而完成该有效区域的三角化。在步骤210中,分别更新最近左边及最近右边的上端点为各自与当前扫描线的交点,对未进行三角化有效性判断的区域的顶点进行刷新,为下一次该区域的三角化有效性判断进行顶点数据准备。此后进入步骤211,从当前活动边表中删除当前顶点的所有上边,对未三角化有效性判断的区域顶点的活动边进行刷新,为下一次该区域的三角化有效性判断进行活动边数据准备。此后进入步骤212,判断当前顶点是否有下边。若有下边,则进入步骤213 ;否则返回步骤203,依次发出穿过经排序的当前顶点的下一顶点且垂直于指定坐标轴的扫描线,被扫描线穿过的该下一顶点为当前顶点。在步骤213中,在最近左边和最近右边之间,将当前顶点的所有下边依次插入,对多边形中未被三角化的剩余区域进行活动边和顶点的有序刷新。此后进入步骤214,判断当前顶点是否为有序活动边表中的最后一个顶点。若是,则结束本流程;否则返回步骤203,依次发出穿过经排序的当前顶点下一顶点且垂直于指定坐标轴的扫描线,被扫描线穿过的该下一顶点为当前顶点。在扫描到当前活动边为最后一条边之前,或者在当前扫描线之上且与当前顶点连通又还未被三角化的剩余区域都不符合有效区域的判断条件时,对于该多边形中剩余未被三角化的有效区域的确定,需要在每完成一次的有效区域三角化之后,更新该有效区域的最近左边和最近右边的上端点为各自与当前扫描线的交点,同时在活动边表中将已进行过三角化的有效区域的活动边删除,更新当前活动边表的活动边都是未被扫描过的活动边。图3是该计算机图像处理中多边形的三角化方法的流程示意图。具体地说,如图3所示,该计算机图像处理中多边形的三角化方法包括以下步骤:在步骤301中,根据指定坐标轴的坐标值大小和使用快速排序法,对多边形的各个顶点进行排序。在本发明的某些实施方式中,对多边形的各个顶点根据指定坐标轴的坐标值大小进行排序,其排序方法包括但不限于快速排序法,也可以包括其他的排序方法,比如冒泡排序法,折半排序法等。此后进入步骤302,根据经排序的各顶点并按照其所对应的活动边的斜率大小排序建立活动边表。相应地,在活动边表中,每个顶点所对应的活动边包括但不限于根据斜率大小排序,若按照斜率进行活动边排序,则其斜率获取可以通过每条活动边的一顶点与另一顶点之间的横坐标增量DX与纵坐标增量DY的比值DX/DY实现,斜率越小表示越“右边”,斜率越大表示越“左边”,一个顶点发了扫描线,并生成完三角形后,会把其所有已排序的下边,力口入到现有的有序活动边表,构成一个新的有序活动边表,并且已经是排好序的。这样发扫描线找最近、最远的边时,就节省了系统计算工作量,减少了系统负载,提高了系统工作效率。此后进入步骤303,依次发出穿过经排序的当前顶点的下一顶点且垂直于指定坐标轴的扫描线,被扫描线穿过的该下一顶点为当前顶点。由顶点的下边表的有序及顶点的有序保证了活动边的有序,因此每次发扫描线时不需要和所有活动边求交,以及对交点排序,所以计算量进一步减少。此后进入步骤304,根据穿过该当前顶点的当前扫描线和活动边表得到对应的活动边。此后进入步骤305,根据所得到的活动边及非零填充法则对当前扫描线穿过的活动边计数。此后进入步骤306,找到在当前扫描线之上的当前顶点的最远左边和最远右边,其中该最远左边的左方区域的计数为零,该最远左边的右方区域的计数为非零整数,该最远右边的左方区域的计数为非零整数,该最远右边的右方区域的计数为零。在有序活动边表的三角化方法中,使用非零填充规则,通过只对在当前扫描线之上的当前顶点的最远左边和最远右边之间的有效区域,组建三角形,从而进一减少了计算量。此后进入步骤307,仅在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形,由上一顶点的扫描线、当前扫描线、最远左边和最远右边确定可以进行三角化的有效区域,其中,该上一顶点为经排序的当前顶点的上一顶点。若判定最远左边的左边区域计数为零且其右边区域的计数为非零整数,同时最远右边的左边区域的计数为非零整数且其右边区域的计数为零,则对最远左边和最近右边之间并且未被确定过有效区域的区域,确定为有效区域。仅在与顶点连通的当前扫描线之上的有效区域组建三角形,减少了不必要的三角形切分,其所组成的三角形数目较少,形状较大,大大减少了计算机图形处理部件的计算量,后续在三角形基础上的图形处理效率较高。由穿过上一顶点的扫描线、当前扫描线、最远左边和最远右边围成的一个区域,其中,该上一顶点为经排序的当前顶点的上一顶点,如果该区域为四边形,则以其对角线将该四边形划分为两个三角形。此后进入步骤308,判断该有效区域是否为四边形。若是,则进入步骤309 ;否则进入步骤310。在步骤309中,以对角线将该四边形划分为两个三角形。在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形,供计算机的图形处理器渲染图像使用,此后进入步骤310。在当前扫描线之上的当前顶点的最远左边和最远右边之间的有效区域确定为三角形或者四边形,之后,通过连接四边形的左上顶点与右下顶点或者右上顶点与左下顶点形成的对角线,将该四边形再次划分为两个三角形,从而完成该有效区域的三角化。在步骤310中,分别更新最远左边及最远右边的上端点为各自与当前扫描线的交点,对未进行三角化有效性判断的区域的顶点进行刷新,为该区域的下次三角化有效性判断进行顶点数据准备。此后进入步骤311,从当前活动边表中删除当前顶点的所有上边,对未三角化有效性判断的区域顶点的活动边进行刷新,为该区域的下一次三角化有效性判断进行活动边数据准备。此后进入步骤312,判断当前顶点是否有下边。若是,则进入步骤313 ;否则返回步骤303,依次发出穿过经排序的当前顶点的下一顶点且垂直于指定坐标轴的扫描线,被扫描线穿过的该下一顶点为当前顶点。在步骤313中,在最远左边和最远右边之间,将当前顶点的所有下边依次插入,对多边形中未被三角化的剩余区域中的活动边和顶点有序刷新。此后进入步骤314,判断当前顶点是否为有序活动边表中的最后一个顶点。若是,则结束该多边形三角化流程;否则返回步骤303,依次发出穿过经排序的当前顶点的下一顶点且垂直于指定坐标轴的扫描线,其中,被扫描线穿过的该下一顶点为当前顶点。在扫描到当前活动边为最后一条边之前,或者在当前扫描线之上且与当前顶点连通又还未被三角化的剩余区域都不符合有效区域的判断条件时,对于该多边形中剩余未被三角化的区域的有效性判断,需要在每完成一次的有效区域三角化之后,更新该有效区域的最远左边和最远右边的上端点为各自与当前扫描线的交点,同时在活动边表中将已进行过三角化的有效区域的活动边删除,经更新后的当前活动边表的活动边都是未被扫描过的活动边。作为本发明的优选例,图4是本实施方式中一种计算机图像处理中多边形的三角化方法的一种多边形示意图,活动边表中每个顶点Vi所对应的活动边根据斜率大小排序时,只要保证各顶点活动边按照斜率大小排序的位序方向与穿过经排序的各顶点的扫描线的方向一致即可,即都垂直于指定坐标轴。如图4所示,假定坐标轴Y轴为指定坐标轴,坐标轴X轴为垂直于Y轴的坐标轴,矢量多边形的顶点根据指定坐标轴Y轴的方向的坐标值的排序为{v8,V7, V9, V6, V0, V1, V5, V2, V3, V4I ,在穿过顶点V。上半区域的三角化有效性判断之后,将顶点Vtl的下边I1插入有序活动边表使有序活动边表数据刷新的过程中,只要保证发出一条平行于坐标轴X轴的直线I1,依次与活动边I1相交的顺序进行活动边表中活动边排序的结果,就为按照活动边的斜率排序的结果,所求斜率可以直接通过顶点与顶点之间的位置数值关系进行计算。奇偶填充和非零填充都是计算机图形学中的术语。如果扫描线与一个边相交,则根据边的方向,交后的区域+1或-1,因此不同的区域有不同的值。奇偶填充指只填奇区域,不填偶区域。非零填充指填充所有非零的区域,不管是奇区域还是偶区域。作为本发明的优选例,图5(a)是本实施方式中一种计算机图像处理中多边形的三角化方法的一种多边形原始示意图,经过基于奇偶填充规则的三角化处理之后,得到如图5(b)所示关于该多边形的效果示意图,经过基于非零填充规则的三角化处理之后,得到如图5(c)所示关于该多边形的效果示意图,图6(a)是本实施方式中一种计算机图像处理中多边形的三角化方法的另一种多边形原始示意图,其中,顶点V2有上边A,在其活动边中,边A在边B、C、D的左边,故该顶点V2也认为在边B、C、D的左边。并且,其下边F也认为在边B、C、D的左边。顶点V1X上边。需要与活动边B和边C求交以判断其位置,该顶点V1在边A和边D之间。并且,其下边边B和边C也会在边A和边D之间。图6(b)是本实施方式中一种计算机图像处理中多边形的三角化方法的一种多边形效果示意图,三角化有效区域的确定采用奇偶填充法则进行计数,对于顶点V1,它在边A和边D之间,会找到其最近的左边A,且该边右方区域的计数为奇数;找到其最近的右边D,且该边左方区域值为奇数。符合上述条件的边A和边D,会与穿过顶点V1的扫描线求交,得到的交点Itl和I1会与顶点V1的上一顶点%组成三角形,发送给硬件完成绘制工作,并更新交点ItI和I1分别为边A和边D的上端点,以及将顶点V1的下边B和边C插入到边A和边D之间,更新活动边表。对于顶点V2,它在最左边,只需找到右边B,该边符合左方区域的计数为奇数且右方区域的计数为偶数的条件,会与穿过顶点V2的扫描线求交,交点I2,并与顶点Itl, V1,交点I2组成一个四边形,该四边形进一步分为两个三角形,发送给相应硬件处理,并更新交点I2为边B的上端点,以及将顶点V2的下边F插入到边B的左边用于更新活动边表。对顶点V2来说,只会生成有效区域ItlV1I2V2,和边C及边D构成的区域不为有效区域。图6(c)是本实施方式中一种计算机图像处理中多边形的三角化方法的另一种多边形效果示意图,三角化有效区域的确定采用非零填充法则进行计数,穿过顶点V1的扫描线求交,得到的交点Itl和I1会与Vtl组成三角形,发送给硬件完成绘制工作,并更新交点Itl和I1分别为边A和边D的上端点,以及将顶点V1的下边B和边C插入到边A和边D之间,更新活动边表。对于顶点v2,它在最左边,只需找到最远右边D,该边符合左方区域的计数为非零整数,右边区域的计数为零的条件,且距离V2最远。会穿过顶点V2的扫描线求交,交点I3,并与顶点I1, 10, V2组成一个四边形,该四边形进一步分为两个三角形,发送给相应硬件处理,并更新交点I3为边D的上端点,以及将顶点V2的下边F插入到边B的左边用于更新活动边表。对V2来说,只会生成有效区域I3I1ItlV2,边B和边C构成的区域不会再额外生成三角形。在本发明的其他实施方式中,包括但不限于以非零或者奇偶的方式进行三角化有效区域的确定,也可以以其他渲染规则进行,比如左上填充、马赛克处理等。本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Prog rammable ArrayLogic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称 “PROM”)、只读存储器(Read-Only Memory,简称 “ROM”)、电可擦除可编程只读存储器(Electrically Erasable Prog rammable ROM,简称“EEPR0M”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。本发明第三实施方式涉及一种计算机图像处理中多边形的三角化系统。图7是该计算机图像处理中多边形的三角化系统的结构示意图。具体地说,如图7所示,该计算机图像处理中多边形的三角化系统包括以下模块:排序模块,用于对多边形的各个顶点根据指定坐标轴的坐标值大小进行排序。建表模块,用于根据经排序模块排序的各顶点建立活动边表。扫描模块,用于依次发出穿过经排序模块排序的各顶点且垂直于指定坐标轴的扫描线。获取模块,用于对于扫描模块发出的每一条穿过当前顶点的当前扫描线,根据建表模块建立的活动边表得到对应的活动边。计数模块,用于对于扫描模块发出的每一条穿过当前顶点的当前扫描线,对当前扫描线穿过的活动边进行计数。确定模块,用于根据计数模块得到的计数,确定获取模块获取的各活动边之间区域的有效性。组建模块,用于仅在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形,供计算机的图形处理器渲染图像使用。在本发明的其他某些实施方式中,扫描模块可以每发出一条扫描线,就对该扫描线之上且在未被三角化的有效区域中组建三角形,也可以先就多边形的所有顶点全部出扫描线,再对每一条扫描之上且在未被三角化的有效区域中组建三角形。第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。本发明第四实施方式涉及一种计算机图像处理中多边形的三角化系统。图8和图9是该计算机图像处理中多边形的三角化系统的结构示意图。第四实施方式在第三实施方式的基础上进行了改进,主要改进之处在于:根据不同的填充法则,增加了相应的子模块。排序模块使用快速排序法对各个顶点进行排序。活动边表中每个顶点所对应的活动边根据斜率大小排序。具体地说:如图8所示,组建模块还包括以下子模块:最近边获取子模块,用于找到在当前扫描线之上的当前顶点的最近左边和最近右边,其中该最近左边的左方区域的计数为偶数,该最近左边的右方区域的计数为奇数,该最近右边的左方区域的计数为奇数,该最近右边的右方区域的计数为偶数。第一生成子模块,用于由穿过最近上顶点的扫描线、当前扫描线、最近边获取模块获取的最近左边和最近右边围成一个区域,其中,最近边获取模块获取的最近左边或最近右边的上一顶点中最靠近当前扫描线的顶点为最近上顶点。第一划分子模块,用于如果第一生成子模块围成的区域为四边形,则以对角线将该四边形划分为两个三角形。如图9所示,组建模块还包括以下子模块:最远边获取子模块,用于找到在当前扫描线之上的当前顶点的最远左边和最远右边,其中该最远左边的左方区域的计数为零,该最远左边的右方区域的计数为非零整数,该最远右边的左方区域的计数为非零整数,该最远右边的右方区域的计数为零。
第二生成子模块,用于由穿过上一顶点的扫描线、当前扫描线、最远边获取模块获取的最远左边和最远右边围成一个区域,其中,该上一顶点为经排序的当前顶点的上一顶点。第二划分子模块,用于如果第二生成子模块围成的区域为四边形,则以对角线将该四边形划分为两个三角形。第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。需要说明的是,本发明各设备实施方式中提到的各模块都是逻辑模块,在物理上,一个逻辑模块可以是一个物理模块,也可以是一个物理模块的一部分,还可以以多个物理模块的组合实现,这些逻辑模块本身的物理实现方式并不是最重要的,这些逻辑模块所实现的功能的组合是才解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的模块引入,这并不表明上述设备实施方式并不存在其它的模块。虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种计算机图像处理中多边形的三角化方法,其特征在于,包括以下步骤: 对多边形的各个顶点根据指定坐标轴的坐标值大小进行排序; 根据经排序的各顶点建立活动边表; 依次发出穿过经排序的各顶点且垂直于所述指定坐标轴的扫描线,对于每一条穿过当前顶点的当前扫描线,执行以下步骤: 根据所述活动边表得到对应的活动边,对当前扫描线穿过的活动边进行计数,根据计数确定各活动边之间区域的有效性,仅在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形,供计算机的图形处理器渲染图像使用。
2.根据权利要求 1所述的计算机图像处理中多边形的三角化方法,其特征在于,所述活动边表中每个顶点所对应的活动边根据斜率大小排序。
3.根据权利要求1所述的计算机图像处理中多边形的三角化方法,其特征在于,在所述对多边形的各个顶点根据指定坐标轴的坐标值大小进行排序的步骤中,使用快速排序法对各个顶点进行排序。
4.根据权利要求1至3中任一项所述的计算机图像处理中多边形的三角化方法,其特征在于,所述仅在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形的步骤,包括以下子步骤: 找到在当前扫描线之上的当前顶点的最近左边和最近右边,其中该最近左边的左方区域的计数为偶数,该最近左边的右方区域的计数为奇数,该最近右边的左方区域的计数为奇数,该最近右边的右方区域的计数为偶数; 由穿过该最近上顶点的扫描线、当前扫描线、所述最近左边和最近右边围成一个区域,如果该区域为四边形,则以对角线将该四边形划分为两个三角形,其中,所述最近左边或最近右边的上一顶点中最靠近当前扫描线的顶点为最近上顶点。
5.根据权利要求1至3中任一项所述的计算机图像处理中多边形的三角化方法,其特征在于,所述仅在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形的步骤,包括以下子步骤: 找到在当前扫描线之上的当前顶点的最远左边和最远右边,其中该最远左边的左方区域的计数为零,该最远左边的右方区域的计数为非零整数,该最远右边的左方区域的计数为非零整数,该最远右边的右方区域的计数为零; 由穿过上一顶点的扫描线、当前扫描线、所述最远左边和最远右边围成一个区域,该上一顶点为经排序的当前顶点的上一顶点,如果该区域为四边形,则以对角线将该四边形划分为两个三角形。
6.一种计算机图像处理中多边形的三角化系统,其特征在于,包括以下模块: 排序模块,用于对多边形的各个顶点根据指定坐标轴的坐标值大小进行排序; 建表模块,用于根据经所述排序模块排序的各顶点建立活动边表; 扫描模块,用于依次发出穿过经所述排序模块排序的各顶点且垂直于所述指定坐标轴的扫描线; 获取模块,用于对于所述扫描模块发出的每一条穿过当前顶点的当前扫描线,根据所述建表模块建立的活动边表得到对应的活动边; 计数模块,用于对于所述扫描模块发出的每一条穿过当前顶点的当前扫描线,对当前扫描线穿过的活动边进行计数; 确定模块,用于根据所述计数模块得到的计数,确定所述获取模块获取的各活动边之间区域的有效性; 组建模块,用于仅在当前扫描线之上且与当前顶点连通又还未被三角化的有效区域中组建三角形,供计算机的图形处理器渲染图像使用。
7.根据权利要求6所述的计算机图像处理中多边形的三角化系统,其特征在于,所述活动边表中每个顶点所对应的活动边根据斜率大小排序。
8.根据权利要求6所述的计算机图像处理中多边形的三角化系统,其特征在于,所述排序模块使用快速排序法对各个顶点进行排序。
9.根据权利要求6至8中任一项所述的计算机图像处理中多边形的三角化系统,其特征在于,所述组建模块还包括以下子模块: 最近边获取子模块,用于找到在当前扫描线之上的当前顶点的最近左边和最近右边,其中该最近左边的左方区域的计数为偶数,该最近左边的右方区域的计数为奇数,该最近右边的左方区域的计数为奇数,该最近右边的右方区域的计数为偶数; 第一生成子模块,用于由穿过最近上顶点的扫描线、当前扫描线、所述最近边获取模块获取的最近左边和最近右边围成一个区域,其中,所述最近边获取模块获取的最近左边或最近右边的上一顶点中最靠近当前扫描线的顶点为最近上顶点; 第一划分子模块,用于如果所述第一生成子模块生成的区域为四边形,则以对角线将该四边形划分为两个三角形。
10.根据权利要求6至8中任一项所述的计算机图像处理中多边形的三角化系统,其特征在于,所述组建模块还包括以下子模块: 最远边获取子模块,用于找到在当前扫描线之上的当前顶点的最远左边和最远右边,其中该最远左边的左方区域的计数为零,该最远左边的右方区域的计数为非零整数,该最远右边的左方区域的计数为非零整数,该最远右边的右方区域的计数为零; 第二生成子模块,用于由穿过上一顶点的扫描线、当前扫描线、所述最远边获取模块获取的最远左边和最远右边围成一个区域,该上一顶点为经排序的当前顶点的上一顶点; 第二划分子模块,用于如果所述第二生成子模块围成的区域为四边形,则以对角线将该四边形划分为两个三角形。
全文摘要
本发明涉及计算机图像处理领域,公开了一种计算机图像处理中多边形的三角化方法及其系统。本发明中,仅在与顶点连通的当前扫描线之上的有效区域组建三角形,减少了不必要的三角形切分,三角形数目较少形状较大,大大减少了计算量,后续在三角形基础上的图形处理效率较高,由顶点的下边表的有序及顶点的有序保证了活动边的有序,然后对交点排序,进一步减少计算量。同时,使用奇偶填充规则和非零填充法则,对多边形的顶点使用快速排序法,使得内存数据在内存中挪移最少,提高了图形处理效率。
文档编号G06T11/20GK103164864SQ201110415358
公开日2013年6月19日 申请日期2011年12月13日 优先权日2011年12月13日
发明者张黎, 郭惠 申请人:上海炬力集成电路设计有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1