CN104008558A - 贝塞尔曲线光栅化处理方法及系统 - Google Patents
贝塞尔曲线光栅化处理方法及系统 Download PDFInfo
- Publication number
- CN104008558A CN104008558A CN201310058020.XA CN201310058020A CN104008558A CN 104008558 A CN104008558 A CN 104008558A CN 201310058020 A CN201310058020 A CN 201310058020A CN 104008558 A CN104008558 A CN 104008558A
- Authority
- CN
- China
- Prior art keywords
- bezier
- fractionation
- line segment
- split
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种贝塞尔曲线光栅化处理方法及系统,其中方法包括:设置贝塞尔曲线的拆分次数最小值的预设条件;根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数n;根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行n次拆分,最后进行直线光栅化处理并存储。通过上述方法,直接获得当前的贝塞尔曲线的最小拆分次数n,进行n次拆分,避免了拆分过程中的多次测量运算。本发明提供的贝塞尔曲线光栅化处理方法及系统,减少了大量运算,提升了曲线拆分速度,可简单快速地完成贝塞尔曲线光栅化处理。
Description
技术领域
本发明涉及计算机图像处理技术领域,尤其涉及一种贝塞尔曲线光栅化处理方法及系统。
背景技术
随着大规模集成电路的高速发展,个人消费终端已经具备了强大的处理能力和配备了高分辨率显示屏,用户界面从原来简单的功能菜单到现在炫丽的图形界面。复杂的图形应用所需要的处理能力是中央处理器(central processor unit,简称CPU)无法承受的,这个时候,2D图形处理单元(2-Dimension Graphic Unit,简称2D GPU)和3D图形处理单元(3-Dimension Graphic Unit,简称3D GPU)就产生了。
贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。贝塞尔曲线光栅化处理技术,是基于矢量图形算法标准(OpenVG标准)的2D GPU实现过程中的重要技术。
贝塞尔曲线光栅化处理技术,主要是采用直线逼近法,根据基本贝塞尔曲线的拆分算法对曲线进行拆分,直到拆分出来的每条曲线都可以近似为一条直线为止。现有的判定方法是对应每次拆分的新的曲线,都要对当前曲线进行测量和判定,决定是否进行下一步拆分,从而运算量较大,速度慢,实现代价也高。
发明内容
基于上述问题,本发明提供了一种贝塞尔曲线光栅化处理方法,包括如下步骤:
初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件;
在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离x和y值;
根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数n;
根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行n次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中;
待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
在其中一个实施例中,所述设置贝塞尔曲线的拆分次数最小值的预设条件包括如下步骤:
根据图像的细腻程度要求,设置参数V;
设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数n为满足关系式n≥(log2((x+y)/V)+1)/2的最小值。
在其中一个实施例中,所述判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线之后,还包括如下步骤:
若判断所述矢量线段为直线,则直接将所述当前读取的数据块存储在所述线段缓冲区中。
在其中一个实施例中,所述根据基本贝塞尔曲线的拆分算法,对当前的贝塞尔曲线进行n次拆分,包括以下步骤:
根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到n次结束拆分操作。
在其中一个实施例中,所述图形数据库为windows TrueType字体数据库和/或flash图形数据库。
相应地,本发明提供了一种贝塞尔曲线光栅化处理系统,包括初始化模块、读取模块、计算模块、拆分模块和存储模块,其中:
所述初始化模块,用于初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件;
所述读取模块,用于在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离x和y值;
所述计算模块,用于根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数n;
所述拆分模块,用于根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行n次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中;
所述存储模块,用于待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
在其中一个实施例中,所述初始化模块包括预设子模块,其中:
所述预设子模块,用于根据图像的细腻程度要求,设置参数V;
设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数n为满足关系式n≥(log2((x+y)/V)+1)/2的最小值。
在其中一个实施例中,所述读取模块包括判断子模块,其中:
所述判断子模块,用于若判断所述矢量线段为直线,则直接将所述当前读取的数据块存储在所述线段缓冲区中。
在其中一个实施例中,所述拆分模块包括拆分子模块,其中:
所述拆分子模块,用于根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到n次结束拆分操作。
本发明的有益效果:本发明提供的贝塞尔曲线光栅化处理方法及系统,所述方法通过设定预设条件,读取图形数据库中的数据块,根据预设条件和相关数据直接计算得到当前的贝塞尔曲线的最小拆分次数n;然后,根据贝塞尔曲线的拆分算法直接进行n次曲线拆分,拆分过程中,无需对当前曲线进行测量和判定,决定是否进行下一步拆分,从而避免了拆分过程中的多次测量运算;最后将拆分后的曲线进行直线光栅化处理,可简单快速地完成贝塞尔曲线光栅化处理。此方法减少了大量运算,提升了曲线拆分速度,从而大大加速了贝塞尔曲线光栅化的速度。
附图说明
图1为本发明贝塞尔曲线光栅化处理方法的一个实施例的流程示意图;
图2为本发明贝塞尔曲线光栅化处理系统的一个实施例的系统结构示意图;
图3为图1及图2中本发明贝塞尔曲线光栅化处理方法及系统中的预设条件:贝塞尔曲线的最小拆分次数n满足的关系式n≥(log2((x+y)/V)+1)/2的推导原理图。
具体实施方式
下面结合说明书附图,对本发明实施例中的贝塞尔曲线光栅化处理方法及系统的具体实施方式进行说明。
实施例一
本发明实施例提供的贝塞尔曲线光栅化处理方法,包括如下步骤:
初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件;
在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离x和y值;
根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数n;
根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行n次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中;
待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
实施例二
本发明实施例提供的贝塞尔曲线光栅化处理方法,如图1所示,包括如下步骤:
S100、初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件。
S200、读取图形数据库中的数据块,判断当前读取的数据块对应的矢量线段是否为贝塞尔曲线;若当前读取的数据块对应的矢量线段是贝塞尔曲线,则跳至步骤S210;若当前读取的数据块对应的矢量线段不是贝赛尔曲线,则跳至步骤S220。
若所述图形数据库中的数据块以经全部读完,则跳至步骤S500。
所述图像数据库中的每个图像均对应一个数据块,在读取图形数据库中每个数据块时,根据各个数据块的标志判断所述数据块对应的矢量线段直线还是贝塞尔曲线。
S300、根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数n;
所述当前的贝塞尔曲线进行n次拆分后,得到的矢量线段均可近似为直线。
S400、根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行n次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中。
完成步骤S400之后,跳至步骤S200,读取所述图形数据库中下一个图形所对应的数据块。
S500、待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
当所有图形所对应的数据块均被读取后,对储存在所述线段缓冲区中的所有原始直线以及经过拆分得到的多条直线矢量线段进行直线光栅化处理。
较佳地,作为一个实施例,所述设置贝塞尔曲线的拆分次数最小值的预设条件包括如下步骤:
S110、根据图像的细腻程度要求,设置参数V;
所述参数V为判断曲线可近似为直线的阈值,V的值越小,图像边缘越光滑。
举例说明:如图3所示,根据贝塞尔曲线的拆分算法,把曲线{P0 0,P0 1,P0 2}拆分成{P0 0,P1 0,P2 0}和{P2 0,P1 1,P0 2},并且有以下关系:
P1 0=1/2*P0 0+1/2*P0 1
P1 1=1/2*P0 1+1/2*P0 2
P2 0=1/2*P1 0+1/2*P1 1
不断重复以上的拆分操作,一条贝塞尔曲线可以拆分出无数条“更小”的贝塞尔曲线,直到拆分出来的每条曲线都可以近似为一条直线为止。
上述拆分操作的关键在于,如何判定当前曲线是否已经可以近似为直线,常用的判定方法是计算点P2 0到直线段{P0 0,P0 2}的距离D,当D小于某个预先设定的值V的时候,可以认为曲线段{P0 0,P2 0,P0 2}等同于直线段{P0 0,P0 2},此时拆分完成。
S120、设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数n为满足关系式n≥(log2((x+y)/V)+1)/2的最小值。
所述关系式n≥(log2((x+y)/V)+1)/2的具体算法和其推导过程如下:
如图3所示,三角形P0 0P0 1P0 2和三角形P1 0P0 1P1 1是有相同的夹角θ,相其夹边边长成2:1的关系,所以它们是相似三角形。
直线P0 1P2 0与直线P0 0P0 2相交点为Pm,因为三角形P0 0P0 1P0 2和三角形P1 0P0 1P1 1是相似三角形,且P2 0是线段P0 1P1 1的中点,所以且Pm是线段P0 0P0 2的中点。由于这两个三角形夹边的长度比是2:1,所以P0 1到Pm的距离等于2倍P2 0到Pm的距离;P0 1到线段{P0 0,P0 2}的距离等于2倍P2 0到线段{P0 0,P0 2}的距离。记L0为P0 1到Pm的距离,H0为P0 1到线段{P0 0,P0 2}的距离,D0为P2 0到线段{P0 0,P0 2}的距离,容易得到L0≥H0=2*D0。
曲线段{P0 0,P2 0,P0 2}经过一次拆分后,产生2个新的贝塞尔曲线段{P0 0,P1 0,P2 0}和{P2 0,P1 1,P0 2}。考察曲线段{P0 0,P1 0,P2 0},记Pn是线段{P0 0,P2 0}的中点,L1为P1 0到Pn的距离,H1为P1 0到线段{P0 0,P2 0}的距离,D1为Pj到Pn的距离。因为三角形P0 0P0 1Pm和三角形P1 0P0 1P2 0是夹边比例为2:1的相似三角形,L1=1/2*(1/2*L0)=1/4*L0。对曲线段{P2 0,P1 1,P0 2}有相同的结论。
经过n次拆分后,只要V≥Dn,拆分就可以完成。由上面类推,Ln≥2*Dn,所以当V≥1/2*Ln=1/22n*D0的时候,拆分就可以完成。
令x=|P0 1.x-Pm.x|,y=|P0 1.y-Pm.y|,则L02=x2+y2。取L=x+y;由于L>L0>=2*D0,所以V≥22n-1*L,可以保证V≥1/22n*D0成立,即V≥1/22n-1*(x+y)。
最后,得出拆分次数计算公式:n≥(log2((x+y)/V)+1)/2。
只要算出满足此公式的最小n值,就可以得到原始贝塞尔曲线的拆分次数,从而避免了在每次拆分后做测试来决定是否进行下一次拆分。
较佳地,作为一个实施例,所述判断当前读取的数据块对应的矢量线段是否为贝塞尔曲线之后,还包括如下步骤:
S210、分析数据块中贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离x和y值;
若图形为贝塞尔曲线,则其所对应的据块中包括了顶点和控制点的坐标数据,根据所述顶点和控制点的坐标数据,得到当前的贝赛尔曲线的两个顶点的纵向和横向的距离x和y值。
S220、直接将所述当前读取的数据块存储在所述线段缓冲区中,返回至步骤S200,读取所述图形数据库中下一个图形所对应的数据块。
若所述图形数据库中的所有数据块已经全部被读取,则跳至步骤S500。
较佳地,作为一个实施例,所述根据基本贝塞尔曲线的拆分算法,对当前的贝塞尔曲线进行n次拆分,包括以下步骤:
S410、根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到n次结束拆分操作。
较佳地,作为一个实施例,所述图形数据库为windows TrueType字体数据库和/或flash图形数据库。
所述图形数据库包括但不限于windows TrueType字体数据库以及flash图形数据库。
基于同一发明构思,本发明实施例还提供了一种贝塞尔曲线光栅化处理系统1,如图2所示,包括初始化模块11、读取模块12、计算模块13、拆分模块14和存储模块15,其中:
所述初始化模块11,用于初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件。
所述读取模块12,用于在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离x和y值,并传送至计算模块。
所述图像数据库中的每个图像均对应一个数据块,在读取图形数据库中每个数据块时,根据各个数据块的标志,判断所述数据块对应的矢量线段直线还是贝塞尔曲线。
若图形为贝塞尔曲线,则其所对应的据块中包括了顶点和控制点的坐标数据,根据所述顶点和控制点的坐标数据,得到当前的贝赛尔曲线的两个顶点的纵向和横向的距离x和y值。
举例说明,如图3所示:
当前的贝赛尔曲线的两个顶点的横向距离:x=|P0 1.x-Pm.x|,纵向距离:y=|P0 1.y-Pm.y|。
所述计算模块13,用于根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数n。
所述计算模块读取所述初始化模块中设置的参数V,以及所述读取模块计算得到的x和y值,根据预设条件计算所述当前的贝塞尔曲线的最小拆分次数n。
所述拆分模块14,用于根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行n次拆分,计算得到多条直线矢量线段,并将所述直线矢量线段存储在所述存储模块线段缓冲区中。
所述存储模块15,用于待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的存储的直线矢量线段进行直线光栅化处理并存储。
较佳地,作为一个实施例,所述初始化模块11包括预设子模块111,其中:
所述预设子模块111,用于根据图像的细腻程度要求,设置参数V;
所述参数V为判断曲线可近似为直线的阈值。
举例说明:如图3所示,根据贝塞尔曲线的拆分算法,把曲线{P0 0,P0 1,P0 2}拆分成{P0 0,P1 0,P2 0}和{P2 0,P1 1,P0 2},并且有以下关系:
P1 0=1/2*P0 0+1/2*P0 1
P1 1=1/2*P0 1+1/2*P0 2
P2 0=1/2*P1 0+1/2*P1 1
不断重复以上的拆分操作,一条贝塞尔曲线可以拆分出无数条“更小”的贝塞尔曲线,直到拆分出来的每条曲线都可以近似为一条直线为止。
上述拆分操作的关键在于,如何判定当前曲线是否已经可以近似为直线,常用的判定方法是计算点P2 0到直线段{P0 0,P0 2}的距离D,当D小于某个预先设定的值V的时候,可以认为曲线段{P0 0,P2 0,P0 2}等同于直线段{P0 0,P0 2},此时拆分完成。
设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数n为满足关系式n≥(log2((x+y)/V)+1)/2的最小值。
所述关系式n≥(log2((x+y)V)+1)2的具体算法和其推导过程如下:
如图3所示,三角形P0 0P0 1P0 2和三角形P1 0P0 1P1 1是有相同的夹角θ,相其夹边边长成2:1的关系,所以它们是相似三角形。
直线P0 1P2 0与直线P0 0P0 2相交点为Pm,因为三角形P0 0P0 1P0 2和三角形P1 0P0 1P1 1是相似三角形,且P2 0是线段P0 1P1 1的中点,所以且Pm是线段P0 0P0 2的中点。由于这两个三角形夹边的长度比是2:1,所以P0 1到Pm的距离等于2倍P2 0到Pm的距离;P0 1到线段{P0 0,P0 2}的距离等于2倍P2 0到线段{P0 0,P0 2}的距离。记L0为P0 1到Pm的距离,H0为P0 1到线段{P0 0,P0 2}的距离,D0为P2 0到线段{P0 0,P0 2}的距离,容易得到L0≥H0=2*D0。
曲线段{P0 0,P2 0,P0 2}经过一次拆分后,产生2个新的贝塞尔曲线段{P0 0,P1 0,P2 0}和{P2 0,P1 1,P0 2}。考察曲线段{P0 0,P1 0,P2 0},记Pn是线段{P0 0,P2 0}的中点,L1为P1 0到Pn的距离,H1为P1 0到线段{P0 0,P2 0}的距离,D1为Pj到Pn的距离。因为三角形P0 0P0 1Pm和三角形P1 0P0 1P2 0是夹边比例为2:1的相似三角形,L1=1/2*(1/2*L0)=1/4*L0。对曲线段{P2 0,P1 1,P0 2}有相同的结论。
经过n次拆分后,只要V≥Dn,拆分就可以完成。由上面类推,Ln≥2*Dn,所以当V≥1/2*Ln=1/22n*D0的时候,拆分就可以完成。
令x=|P0 1.x-Pm.x|,y=|P0 1.y-Pm.y|,则L02=x2+y2。取L=x+y;由于L>L0>=2*D0,所以V≥22n-1*L,可以保证V≥1/22n*D0成立,即V≥1/22n-1*(x+y)。
最后,得出拆分次数计算公式:n≥(log2((x+y)/V)+1)/2。
只要算出满足此公式的最小n值,就可以得到原始贝塞尔曲线的拆分次数,从而避免了在每次拆分后做测试来决定是否进行下一次拆分。
较佳地,作为一个实施例,所述读取模块12包括判断子模块121,其中:
所述判断子模块121,用于根据读取的数据块的标志,若判断所述当前读取的数据块对应地矢量线段为直线,则直接将所述当前读取的数据块存储在所述线段缓冲区中。
较佳地,作为一个实施例,所述拆分模块14包括拆分子模块141,其中:
所述拆分子模块141,用于根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到n次结束拆分操作。
根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,先将原贝塞尔曲线拆分为2条新的曲线,然后采用递归方法,对所述2条新的曲线进行n-1次拆分,直至原贝塞尔曲线的拆分次数达到n次结束拆分操作。
较佳地,作为一个实施例,所述图形数据库包括但不限于windows TrueType字体数据库以及flash图形数据库。
所述图形数据库包括但不限于windows TrueType字体数据库以及flash图形数据库。
本发明实施例所提供的贝塞尔曲线光栅化处理方法及系统,其中,方法包括设置贝塞尔曲线的拆分次数最小值的预设条件,在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离x和y值;根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数n;根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行n次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中;待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
通过上述方法,直接获得当前的贝塞尔曲线的最小拆分次数n,进行n次拆分,避免了贝赛尔曲线拆分过程中的多次测量运算。本发明实施例提供的贝塞尔曲线光栅化处理方法及系统,减少了大量运算,提升了曲线拆分速度,可简单快速地完成贝塞尔曲线光栅化处理。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种贝塞尔曲线光栅化处理方法,其特征在于,包括如下步骤:
初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件;
在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离x和y值;
根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数n;
根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行n次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中;
待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
2.根据权利要求1所述的贝塞尔曲线光栅化处理方法,其特征在于,所述设置贝塞尔曲线的拆分次数最小值的预设条件包括如下步骤:
根据图像的细腻程度要求,设置参数V;
设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数n为满足关系式n≥(log2((x+y)/V)+1)/2的最小值。
3.根据权利要求1所述的贝塞尔曲线光栅化处理方法,其特征在于,所述判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线之后,还包括如下步骤:
若判断所述矢量线段为直线,则直接将所述当前读取的数据块存储在所述线段缓冲区中。
4.根据权利要求1所述的贝塞尔曲线光栅化处理方法,其特征在于,所述根据基本贝塞尔曲线的拆分算法,对当前的贝塞尔曲线进行n次拆分,包括以下步骤:
根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到n次结束拆分操作。
5.根据权利要求1所述的贝塞尔曲线光栅化处理方法,其特征在于,
所述图形数据库为windows TrueType字体数据库和/或flash图形数据库。
6.一种贝塞尔曲线光栅化处理系统,其特征在于,包括初始化模块、读取模块、计算模块、拆分模块和存储模块,其中:
所述初始化模块,用于初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件;
所述读取模块,用于在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离x和y值;
所述计算模块,用于根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数n;
所述拆分模块,用于根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行n次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中;
所述存储模块,用于待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
7.根据权利要求6所述的贝塞尔曲线光栅化处理系统,其特征在于,所述初始化模块包括预设子模块,其中:
所述预设子模块,用于根据图像的细腻程度要求,设置参数V;
设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数n为满足关系式n≥(log2((x+y)/V)+1)/2的最小值。
8.根据权利要求6所述的贝塞尔曲线光栅化处理系统,其特征在于,所述读取模块包括判断子模块,其中:
所述判断子模块,用于若判断所述矢量线段为直线,则直接将所述当前读取的数据块存储在所述线段缓冲区中。
9.根据权利要求6所述的贝塞尔曲线光栅化处理系统,其特征在于,所述拆分模块包括拆分子模块,其中:
所述拆分子模块,用于根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到n次结束拆分操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310058020.XA CN104008558B (zh) | 2013-02-25 | 2013-02-25 | 贝塞尔曲线光栅化处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310058020.XA CN104008558B (zh) | 2013-02-25 | 2013-02-25 | 贝塞尔曲线光栅化处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104008558A true CN104008558A (zh) | 2014-08-27 |
CN104008558B CN104008558B (zh) | 2017-02-08 |
Family
ID=51369198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310058020.XA Active CN104008558B (zh) | 2013-02-25 | 2013-02-25 | 贝塞尔曲线光栅化处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104008558B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107369191A (zh) * | 2017-08-15 | 2017-11-21 | 国网湖南省电力公司 | 电网气象灾害预测色斑图修正方法、系统及装置 |
CN109145857A (zh) * | 2018-09-04 | 2019-01-04 | 深圳清沣溪科技有限公司 | 一种从曲线图形中提取曲线数据的方法 |
CN110347357A (zh) * | 2019-07-15 | 2019-10-18 | 北大方正集团有限公司 | 打印处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050007369A1 (en) * | 2003-07-07 | 2005-01-13 | Jiangen Cao | Graphic engine for approximating a quadratic Bezier curve in a resource-constrained device |
CN101071508A (zh) * | 2006-05-11 | 2007-11-14 | 株式会社东芝 | 图像处理装置和图像处理方法 |
CN102099832A (zh) * | 2008-07-18 | 2011-06-15 | 微软公司 | Gpu贝塞尔路径光栅化 |
CN102567945A (zh) * | 2010-12-21 | 2012-07-11 | 北大方正集团有限公司 | 页面数字图像的光栅化处理方法和装置 |
-
2013
- 2013-02-25 CN CN201310058020.XA patent/CN104008558B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050007369A1 (en) * | 2003-07-07 | 2005-01-13 | Jiangen Cao | Graphic engine for approximating a quadratic Bezier curve in a resource-constrained device |
CN101071508A (zh) * | 2006-05-11 | 2007-11-14 | 株式会社东芝 | 图像处理装置和图像处理方法 |
CN102099832A (zh) * | 2008-07-18 | 2011-06-15 | 微软公司 | Gpu贝塞尔路径光栅化 |
CN102567945A (zh) * | 2010-12-21 | 2012-07-11 | 北大方正集团有限公司 | 页面数字图像的光栅化处理方法和装置 |
Non-Patent Citations (2)
Title |
---|
樊松: "TrueType字体自动达标机软件设计", 《辽宁科技大学学报》 * |
洪波: "移动Flash渲染关键技术的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107369191A (zh) * | 2017-08-15 | 2017-11-21 | 国网湖南省电力公司 | 电网气象灾害预测色斑图修正方法、系统及装置 |
CN107369191B (zh) * | 2017-08-15 | 2021-01-15 | 国网湖南省电力有限公司 | 电网气象灾害预测色斑图修正方法、系统及装置 |
CN109145857A (zh) * | 2018-09-04 | 2019-01-04 | 深圳清沣溪科技有限公司 | 一种从曲线图形中提取曲线数据的方法 |
CN109145857B (zh) * | 2018-09-04 | 2024-02-09 | 深圳十沣科技有限公司 | 一种从曲线图形中提取曲线数据的方法 |
CN110347357A (zh) * | 2019-07-15 | 2019-10-18 | 北大方正集团有限公司 | 打印处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104008558B (zh) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111260750B (zh) | openFL绘制矢量图形的处理方法、装置及电子设备 | |
US20150269773A1 (en) | Graphics processing systems | |
CN105205841B (zh) | 地理信息系统的地图生成方法和系统 | |
TWI769138B (zh) | 圖形處理之方法、流水線電路以及計算機程序 | |
CN101211462A (zh) | 一种矢量图形加速方法及多媒体播放器 | |
CN112329096B (zh) | 三维巷道模型生成方法、装置及电子设备 | |
TW201439667A (zh) | 電子束描繪裝置、電子束描繪方法及記錄媒體 | |
CN106155540B (zh) | 电子毛笔笔形处理方法和装置 | |
CN113012259A (zh) | 一种基于三角剖分算法对凹多边形填充处理的方法 | |
CN101763234A (zh) | 一种模拟各种屏幕分辨率的方法及其装置 | |
US20180240272A1 (en) | Displacement directed tessellation | |
CN104008558A (zh) | 贝塞尔曲线光栅化处理方法及系统 | |
CN111091620A (zh) | 基于图形学的地图动态路网处理方法及系统、计算机设备 | |
CN110147139B (zh) | 计算机执行方法、时脉数据处理系统以及计算机可读取储存媒体 | |
CN111091487B (zh) | 面向gpu硬件线图元光栅化扫描算法的tlm微结构 | |
US10096135B2 (en) | Image processing LSI and image processing program | |
CN111325810B (zh) | 配色方法、装置及电子设备 | |
CN115423919B (zh) | 图像的渲染方法、装置、设备以及存储介质 | |
US10593111B2 (en) | Method and apparatus for performing high throughput tessellation | |
CN110688704A (zh) | 家装设计方法、系统及电子设备 | |
CN108053751B (zh) | 一种电子地图导航路线上绘制方向箭头的方法和装置 | |
CN115249303A (zh) | 基于图纸分割的布点绘制方法、装置、设备及存储介质 | |
KR20130101332A (ko) | 삼각형 메쉬로 표현된 3차원 물체를 DoSurface 표현 방법으로 변환하는 시스템 및 그 방법 | |
JP2011210159A5 (ja) | 画像処理方法、画像処理装置、及びプログラム | |
JP2007140976A (ja) | 断面表示プログラムおよび断面表示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |