贝塞尔曲线光栅化处理方法及系统的制作方法

文档序号:6500042阅读:349来源:国知局
贝塞尔曲线光栅化处理方法及系统的制作方法
【专利摘要】本发明公开了一种贝塞尔曲线光栅化处理方法及系统,其中方法包括:设置贝塞尔曲线的拆分次数最小值的预设条件;根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数n;根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行n次拆分,最后进行直线光栅化处理并存储。通过上述方法,直接获得当前的贝塞尔曲线的最小拆分次数n,进行n次拆分,避免了拆分过程中的多次测量运算。本发明提供的贝塞尔曲线光栅化处理方法及系统,减少了大量运算,提升了曲线拆分速度,可简单快速地完成贝塞尔曲线光栅化处理。
【专利说明】贝塞尔曲线光栅化处理方法及系统
【技术领域】
[0001]本发明涉及计算机图像处理【技术领域】,尤其涉及一种贝塞尔曲线光栅化处理方法及系统。
【背景技术】
[0002]随着大规模集成电路的高速发展,个人消费终端已经具备了强大的处理能力和配备了高分辨率显示屏,用户界面从原来简单的功能菜单到现在炫丽的图形界面。复杂的图形应用所需要的处理能力是中央处理器(central processor unit,简称CPU)无法承受的,这个时候,2D图形处理单兀(2-Dimension Graphic Unit,简称2D GPU)和3D图形处理单兀(3-Dimension Graphic Unit,简称 3D GPU)就产生了。 [0003]贝塞尔曲线(B6Zier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。贝塞尔曲线光栅化处理技术,是基于矢量图形算法标准(OpenVG标准)的2D GPU实现过程中的重要技术。
[0004]贝塞尔曲线光栅化处理技术,主要是采用直线逼近法,根据基本贝塞尔曲线的拆分算法对曲线进行拆分,直到拆分出来的每条曲线都可以近似为一条直线为止。现有的判定方法是对应每次拆分的新的曲线,都要对当前曲线进行测量和判定,决定是否进行下一步拆分,从而运算量较大,速度慢,实现代价也高。

【发明内容】

[0005]基于上述问题,本发明提供了一种贝塞尔曲线光栅化处理方法,包括如下步骤:
[0006]初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件;
[0007]在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离X和y值;
[0008]根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数η ;
[0009]根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行η次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中;
[0010]待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
[0011]在其中一个实施例中,所述设置贝塞尔曲线的拆分次数最小值的预设条件包括如下步骤:
[0012]根据图像的细腻程度要求,设置参数V ;
[0013]设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数η为满足关系式η≥(1g2 ((x+y) /V)+1)/2的最小值。
[0014]在其中一个实施例中,所述判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线之后,还包括如下步骤:[0015]若判断所述矢量线段为直线,则直接将所述当前读取的数据块存储在所述线段缓冲区中。
[0016]在其中一个实施例中,所述根据基本贝塞尔曲线的拆分算法,对当前的贝塞尔曲线进行η次拆分,包括以下步骤:
[0017]根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到η次结束拆分操作。
[0018]在其中一个实施例中,所述图形数据库为windows TrueType字体数据库和/或flash图形数据库。
[0019]相应地,本发明提供了一种贝塞尔曲线光栅化处理系统,包括初始化模块、读取模块、计算模块、拆分模块和存储模块,其中:
[0020]所述初始化模块,用于初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件;
[0021]所述读取模块,用于在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离X和y值;
[0022]所述计算模块,用于根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数η ;
[0023]所述拆分模块,用于根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行η次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中;
[0024]所述存储模块,用于待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
[0025]在其中一个实施例中,所述初始化模块包括预设子模块,其中:
[0026]所述预设子模块,用于根据图像的细腻程度要求,设置参数V ;
[0027]设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数η为满足关系式η≥(1g2 ((x+y) /V)+1)/2的最小值。
[0028]在其中一个实施例中,所述读取模块包括判断子模块,其中:
[0029]所述判断子模块,用于若判断所述矢量线段为直线,则直接将所述当前读取的数据块存储在所述线段缓冲区中。
[0030]在其中一个实施例中,所述拆分模块包括拆分子模块,其中:
[0031]所述拆分子模块,用于根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到η次结束拆分操作。
[0032]本发明的有益效果:本发明提供的贝塞尔曲线光栅化处理方法及系统,所述方法通过设定预设条件,读取图形数据库中的数据块,根据预设条件和相关数据直接计算得到当前的贝塞尔曲线的最小拆分次数η ;然后,根据贝塞尔曲线的拆分算法直接进行η次曲线拆分,拆分过程中,无需对当前曲线进行测量和判定,决定是否进行下一步拆分,从而避免了拆分过程中的多次测量运算;最后将拆分后的曲线进行直线光栅化处理,可简单快速地完成贝塞尔曲线光栅化处理。此方法减少了大量运算,提升了曲线拆分速度,从而大大加速了贝塞尔曲线光栅化的速度。
【专利附图】

【附图说明】
[0033]图1为本发明贝塞尔曲线光栅化处理方法的一个实施例的流程示意图;
[0034]图2为本发明贝塞尔曲线光栅化处理系统的一个实施例的系统结构示意图;
[0035]图3为图1及图2中本发明贝塞尔曲线光栅化处理方法及系统中的预设条件:贝塞尔曲线的最小拆分次数η满足的关系式η≥(1g2 ((x+y)/V)+1)/2的推导原理图。
【具体实施方式】
[0036]下面结合说明书附图,对本发明实施例中的贝塞尔曲线光栅化处理方法及系统的【具体实施方式】进行说明。
[0037]实施例一
[0038]本发明实施例提供的贝塞尔曲线光栅化处理方法,包括如下步骤:
[0039]初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件;
[0040]在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离X和y值;
[0041]根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数η ;
[0042]根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行η次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中;
[0043]待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
[0044]实施例二
[0045]本发明实施例提供的贝塞尔曲线光栅化处理方法,如图1所示,包括如下步骤:
[0046]S100、初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件。
[0047]S200、读取图形数据库中的数据块,判断当前读取的数据块对应的矢量线段是否为贝塞尔曲线;若当前读取的数据块对应的矢量线段是贝塞尔曲线,则跳至步骤S210;若当前读取的数据块对应的矢量线段不是贝赛尔曲线,则跳至步骤S220。
[0048]若所述图形数据库中的数据块以经全部读完,则跳至步骤S500。
[0049]所述图像数据库中的每个图像均对应一个数据块,在读取图形数据库中每个数据块时,根据各个数据块的标志判断所述数据块对应的矢量线段直线还是贝塞尔曲线。
[0050]S300、根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数η;
[0051]所述当前的贝塞尔曲线进行η次拆分后,得到的矢量线段均可近似为直线。
[0052]S400、根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行η次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中。
[0053]完成步骤S400之后,跳至步骤S200,读取所述图形数据库中下一个图形所对应的数据块。
[0054]S500、待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。[0055]当所有图形所对应的数据块均被读取后,对储存在所述线段缓冲区中的所有原始直线以及经过拆分得到的多条直线矢量线段进行直线光栅化处理。
[0056]较佳地,作为一个实施例,所述设置贝塞尔曲线的拆分次数最小值的预设条件包括如下步骤:0063]不断重复以上的拆分操作,一条贝塞尔曲线可以拆分出无数条“更小”的贝塞尔曲线,直到拆分出来的每条曲线都可以近似为一条直线为止。
[0064]上述拆分操作的关键在于,如何判定当前曲线是否已经可以近似为直线,常用的判定方法是计算点ρ2°到直线段{ΡΛ Po2}的距离D,当D小于某个预先设定的值V的时候,可以认为曲线段{Ρο° ,Ρ2°,Ρο2}等同于直线段{ΡΛ P/},此时拆分完成。
[0065]S120、设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数η为满足关系式η≥(1g2 ((x+y)/V)+1)/2的最小值。
[0066]所述关系式η≥(1g2 ((x+y) /V) +1) /2的具体算法和其推导过程如下:
[0067]如图3所示,三角形PqqPq1Pq2和三角形P1qPq1P11是有相同的夹角Θ,相其夹边边长成2:1的关系,所以它们是相似三角形。
[0068]直线Ptl1P/与直线PQ°PQ2相交点为Pm,因为三角形PcX1Ptl2和三角形P^Pq1P11是相似三角形,且P2°是线段Ptl1P11的中点,所以且Pm是线段PQ°PQ2的中点。由于这两个三角形夹边的长度比是2:1,所以Ptl1到Pm的距离等于2倍P2c^ljPm的距离Λ1到线段{ΡΛΡ/}的距离等于2倍Ρ2°到线段{匕°,P02I的距离。记LO为Ptl1到Pm的距离,HO为Ptl1到线段{匕°,P02I的距离,DO为Ρ2°到线段{PQ°,P02I的距离,容易得到LO≥H0=2*D0。
[0069]曲线段{PQ°,P2°,P。2}经过一次拆分后,产生2个新的贝塞尔曲线段{PQ°,ΡΛ P2°}和{p2°, P11, Po2}。考察曲线段{PQ°,P10, P20I,记Pn是线段{PQ°,P20I的中点,LI为Pi°到Pn的距离,Hl为P10到线段{PQ°,P20I的距离,Dl为Pj到Pn的距离。因为三角形PqqPq1Pdi和三角形
是夹边比例为2:1的相似三角形,L1=1/2*(1/2*L0)=1/4*L0。对曲线段{P2°,P11, P。2}有相同的结论。
[0070]经过η次拆分后,只要V≥Dn,拆分就可以完成。由上面类推,Ln≥2*Dn,所以当V≥l/2*Ln=l/22n*D0的时候,拆分就可以完成。
[0071]令xHp。1.X-Pm.x|,Hp01.y_Pm.y|,则 L02=x2+y2。取 L=x+y ;由于 l>lo>=2*do,所以 V ≥ 22lri*L,可以保证 V ≥ l/22n*D0 成立,即 V ≥ 1/2211-1* (x+y)。
[0072]最后,得出拆分次数计算公式:n≥(log2((X+y)/V)+l)/2。
[0073]只要算出满足此公式的最小η值,就可以得到原始贝塞尔曲线的拆分次数,从而避免了在每次拆分后做测试来决定是否进行下一次拆分。
[0074]较佳地,作为一个实施例,所述判断当前读取的数据块对应的矢量线段是否为贝塞尔曲线之后,还包括如下步骤:
[0075]S210、分析数据块中贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离X和y值;
[0076]若图形为贝塞尔曲线,则其所对应的据块中包括了顶点和控制点的坐标数据,根据所述顶点和控制点的坐标数据,得到当前的贝赛尔曲线的两个顶点的纵向和横向的距离X和y值。
[0077]S220、直接将所述当前读取的数据块存储在所述线段缓冲区中,返回至步骤S200,读取所述图形数据库中下一个图形所对应的数据块。
[0078]若所述图形数据库中的所有数据块已经全部被读取,则跳至步骤S500。
[0079]较佳地,作为一个实施例,所述根据基本贝塞尔曲线的拆分算法,对当前的贝塞尔曲线进行η次拆分,包括以下步骤:
[0080]S410、根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到η次结束拆分操作。
[0081]较佳地,作为一个实施例,所述图形数据库为windows TrueType字体数据库和/或flash图形数据库。
[0082]所述图形数据库包括但不限于windows TrueType字体数据库以及flash图形数据库。
[0083]基于同一发明构思,本发明实施例还提供了一种贝塞尔曲线光栅化处理系统1,如图2所示,包括初始化模块11、读取模块12、计算模块13、拆分模块14和存储模块15,其中:
[0084]所述初始化模块11,用于初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件。
[0085]所述读取模块12,用于在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离X和y值,并传送至计算模块。
[0086]所述图像数据库中的每个图像均对应一个数据块,在读取图形数据库中每个数据块时,根据各个数据块的标志,判断所述数据块对应的矢量线段直线还是贝塞尔曲线。
[0087]若图形为贝塞尔曲线,则其所对应的据块中包括了顶点和控制点的坐标数据,根据所述顶点和控制点的坐标数据,得到当前的贝赛尔曲线的两个顶点的纵向和横向的距离X和y值。
[0088]举例说明,如图3所示:
[0089]当前的贝赛尔曲线的两个顶点的横向距离=X=Ipci1.X-P111.χ|,纵向距离W=Ipci1.y-Pm.y I ο
[0090]所述计算模块13,用于根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数η。
[0091]所述计算模块读取所述初始化模块中设置的参数V,以及所述读取模块计算得到的X和y值,根据预设条件计算所述当前的贝塞尔曲线的最小拆分次数η。[0092]所述拆分模块14,用于根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行η次拆分,计算得到多条直线矢量线段,并将所述直线矢量线段存储在所述存储模块线段缓冲区中。
[0093]所述存储模块15,用于待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的存储的直线矢量线段进行直线光栅化处理并存储。
[0094]较佳地,作为一个实施例,所述初始化模块11包括预设子模块111,其中:
[0095]所述预设子模块111,用于根据图像的细腻程度要求,设置参数V ;
[0096]所述参数V为判断曲线可近似为直线的阈值。
[0097]举例说明:如图3所示,根据贝塞尔曲线的拆分算法,把曲线{ΡΛΡΛΡ。2}拆分成{Po0, P10, P20I 和{P2°,P11, Po2},并且有以下关系:
[0098]Ρ1°=1/2*Ρ0°+1/2*Ρ01
[0099]Ρ11=1/2*Ρ01+1/2*Ρ02
[0100]Ρ2°=1/2*Ρ1°+1/2*Ρ11
[0101]不断重复以上的拆分操作,一条贝塞尔曲线可以拆分出无数条“更小”的贝塞尔曲线,直到拆分出来的每条曲线都可以近似为一条直线为止。
[0102]上述拆分操作的关键在于,如何判定当前曲线是否已经可以近似为直线,常用的判定方法是计算点ρ2°到直线段{ΡΛ Po2}的距离D,当D小于某个预先设定的值V的时候,可以认为曲线段{Ρο°,Ρ2°,Ρο2}等同于直线段{ΡΛ P/},此时拆分完成。
[0103]设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数η为满足关系式η≥(1g2 ((x+y)/V)+1)/2的最小值。
[0104]所述关系式η≥(1g2 ((x+y) V)+1)2的具体算法和其推导过程如下:
[0105]如图3所示,三角形P^Pq1Pq2和三角形P^Ptl1P11是有相同的夹角Θ,相其夹边边长成2:1的关系,所以它们是相似三角形。
[0106]直线Ptl1P20与直线PqqPq2相交点为Pm,因为三角形PqqPq1Pq2和三角形P1qPq1P11是相似三角形,且P2°是线段Ptl1P11的中点,所以且Pm是线段PQ°PQ2的中点。由于这两个三角形夹边的长度比是2:1,所以Ptl1到Pm的距离等于2倍P2c^ljPm的距离Λ1到线段{ΡΛΡ/}的距离等于2倍Ρ2°到线段{匕°,P02I的距离。记LO为Ptl1到Pm的距离,HO为Ptl1到线段{匕°,P02I的距离,DO为Ρ2°到线段{PQ°,P02I的距离,容易得到LO≥H0=2*D0。
[0107]曲线段{PQ°,P2°,P。2}经过一次拆分后,产生2个新的贝塞尔曲线段{PQ°,ΡΛ P2°}和{p2°, P11, Po2}。考察曲线段{PQ°,P10, P20I,记Pn是线段{PQ°,P20I的中点,LI为Pi°到Pn的距离,Hl为P10到线段{PQ°,P20I的距离,Dl为Pj到Pn的距离。因为三角形PqqPq1Pdi和三角形
是夹边比例为2:1的相似三角形,L1=1/2*(1/2*L0)=1/4*L0。对曲线段{P2°,P11, P。2}有相同的结论。
[0108]经过η次拆分后,只要V≥Dn,拆分就可以完成。由上面类推,Ln≥2*Dn,所以当V≥l/2*Ln=l/22n*D0的时候,拆分就可以完成。
[0109]令X=Ipci1.x-pm.x|,Hp01.y_Pm.y|,则 L02=x2+y2。取 L=x+y ;由于 l>lo>=2*do,所以 V≥ 22lri*L,可以保证 V ≥ l/22n*D0 成立,即 V ≥ 1/2211-1* (x+y)。
[0110]最后,得出拆分次数计算公式:n≥(log2((X+y)/V)+l)/2。
[0111]只要算出满足此公式的最小η值,就可以得到原始贝塞尔曲线的拆分次数,从而避免了在每次拆分后做测试来决定是否进行下一次拆分。
[0112]较佳地,作为一个实施例,所述读取模块12包括判断子模块121,其中:
[0113]所述判断子模块121,用于根据读取的数据块的标志,若判断所述当前读取的数据块对应地矢量线段为直线,则直接将所述当前读取的数据块存储在所述线段缓冲区中。
[0114]较佳地,作为一个实施例,所述拆分模块14包括拆分子模块141,其中:
[0115]所述拆分子模块141,用于根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到η次结束拆分操作。
[0116]根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,先将原贝塞尔曲线拆分为2条新的曲线,然后采用递归方法,对所述2条新的曲线进行η-1次拆分,直至原贝塞尔曲线的拆分次数达到η次结束拆分操作。
[0117]较佳地,作为一个实施例,所述图形数据库包括但不限于windows TrueType字体数据库以及flash图形数据库。
[0118]所述图形数据库包括但不限于windows TrueType字体数据库以及flash图形数据库。
[0119]本发明实施例所提供的贝塞尔曲线光栅化处理方法及系统,其中,方法包括设置贝塞尔曲线的拆分次数最小值的预设条件,在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离X和y值;根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数η ;根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行η次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中;待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
[0120]通过上述方法,直接获得当前的贝塞尔曲线的最小拆分次数η,进行η次拆分,避免了贝赛尔曲线拆分过程中的多次测量运算。本发明实施例提供的贝塞尔曲线光栅化处理方法及系统,减少了大量运算,提升了曲线拆分速度,可简单快速地完成贝塞尔曲线光栅化处理。
[0121]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种贝塞尔曲线光栅化处理方法,其特征在于,包括如下步骤: 初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件; 在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离X和y值; 根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数η ; 根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行η次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中; 待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
2.根据权利要求1所述的贝塞尔曲线光栅化处理方法,其特征在于,所述设置贝塞尔曲线的拆分次数最小值的预设条件包括如下步骤: 根据图像的细腻程度要求,设置参数V ; 设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数η为满足关系式η≥(1g2 ((x+y)/V)+1)/2的最小值。
3.根据权利要求1所述的贝塞尔曲线光栅化处理方法,其特征在于,所述判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线之后,还包括如下步骤: 若判断所述矢量线段为直线,则直接将所述当前读取的数据块存储在所述线段缓冲区中。
4.根据权利要求1所述的贝塞尔曲线光栅化处理方法,其特征在于,所述根据基本贝塞尔曲线的拆分算法,对当前的贝塞尔曲线进行η次拆分,包括以下步骤: 根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到η次结束拆分操作。
5.根据权利要求1所述的贝塞尔曲线光栅化处理方法,其特征在于, 所述图形数据库为windows TrueType字体数据库和/或flash图形数据库。
6.一种贝塞尔曲线光栅化处理系统,其特征在于,包括初始化模块、读取模块、计算模块、拆分模块和存储模块,其中:所述初始化模块,用于初始化设置,设置贝塞尔曲线的拆分次数最小值的预设条件;所述读取模块,用于在读取图形数据库中每个数据块时,判断当前读取的数据块对应的矢量线段是直线还是贝塞尔曲线;若判断所述矢量线段为贝塞尔曲线,则分析贝塞尔曲线的顶点和控制点的坐标数据,计算当前的贝赛尔曲线的两个顶点的纵向和横向的距离X和y值; 所述计算模块,用于根据所述预设条件,计算所述当前的贝塞尔曲线的最小拆分次数η ; 所述拆分模块,用于根据基本贝塞尔曲线的拆分算法,对所述当前的贝塞尔曲线进行η次拆分,计算得到多条直线矢量线段并存储在线段缓冲区中; 所述存储模块,用于待所述图形数据库中的数据块均被读取后,对所述线段缓冲区中的直线进行直线光栅化处理并存储。
7.根据权利要求6所述的贝塞尔曲线光栅化处理系统,其特征在于,所述初始化模块包括预设子模块,其中: 所述预设子模块,用于根据图像的细腻程度要求,设置参数V ; 设置所述贝塞尔曲线的拆分次数最小值的预设条件:贝塞尔曲线的最小拆分次数η为满足关系式η≥(1g2 ((x+y)/V)+1)/2的最小值。
8.根据权利要求6所述的贝塞尔曲线光栅化处理系统,其特征在于,所述读取模块包括判断子模块,其中: 所述判断子模块,用于若判断所述矢量线段为直线,则直接将所述当前读取的数据块存储在所述线段缓冲区中。
9.根据权利要求6所述的贝塞尔曲线光栅化处理系统,其特征在于,所述拆分模块包括拆分子模块,其中: 所述拆分子模块,用于根据基本贝塞尔曲线的拆分算法,在对每条贝塞尔曲线进行拆分时,均将贝塞尔曲线拆分为2条新的曲线,采用递归算法逐次拆分,直至拆分次数达到η次结束拆分操 作。
【文档编号】G06T11/00GK104008558SQ201310058020
【公开日】2014年8月27日 申请日期:2013年2月25日 优先权日:2013年2月25日
【发明者】陈荣志 申请人:珠海全志科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1