矢量图形处理方法和装置与流程

文档序号:18429207发布日期:2019-08-13 21:31阅读:530来源:国知局
矢量图形处理方法和装置与流程

本发明涉及通信技术,尤其涉及一种矢量图形处理方法和装置。



背景技术:

目前,在矢量图形的显示过程中,CPU通常采用扫描线算法对矢量图形进行绘制,扫描线算法的原理为:确定矢量图形的最小y值和最大y值,然后在最小y值和最大y值的范围内,设置多条水平线与矢量图形相交,求得交点,再基于这些交点绘制出该矢量图形的线段。

但是,采用现有的矢量图形绘制方式,CPU需要针对每条水平线进行运算处理,其运算量巨大,大大增加了CPU的负载。



技术实现要素:

本发明提供一种矢量图形处理方法和装置,用于降低矢量图形处理过程的负载。

本发明的第一个方面是提供一种矢量图形处理方法,包括:

将矢量图形的路径分离为至少一个第一子路径和至少一个第二子路径;所述第一子路径上的端点的纵轴坐标值单调递增;所述第二子路径上的端点的纵轴坐标值单调递减;

遍历所述矢量图形上的所有端点以获取第一三角形和第二三角形,所述第一三角形的第一顶点为所述第一子路径上的端点,所述第一三角形的第二顶点和第三顶点为所述第二子路径上相邻的两个端点,所述第二三角形的第一顶点为所述第二子路径上的端点,所述第二三角形的第二顶点和第三顶点为所述第一子路径上相邻的两个端点;

将遍历得到的全部所述第一三角形和所述第二三角形存储在所述三角形集合中;

根据所述三角形集合中的第一三角形和第二三角形进行所述矢量图形的显示。

结合第一个方面,在第一种可能的实现方式中,所述第一三角形的第一顶点的纵坐标大于所述第一三角形的第二顶点的纵坐标且小于所述第一三角形的第三顶点的纵坐标;

所述第二三角形的第一顶点的纵坐标大于所述第二三角形的第二顶点的纵坐标且小于所述第二三角形的第三顶点的纵坐标。

结合第一个方面或第一个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述遍历所述矢量图形上的所有端点以获取第一三角形和第二三角形,包括:

遍历所述矢量图形上的所有端点;

获取与每个端点纵坐标相同的水平扫描线以形成最终扫描线;

根据所述最终扫描线与所述矢量图形的交点获取所述第一三角形和所述第二三角形。

结合第一个方面的第二种可能的实现方式,在第三种可能的实现方式中,所述获取与每个端点纵坐标相同的水平扫描线以形成最终扫描线,包括:

获取与每个端点纵坐标相同的水平扫描线;所述每个端点与水平扫描线为一对一绑定关系;

在任意两个相邻的水平扫描线之间的垂直距离小于预设距离阈值时,丢弃所述任意两个相邻的水平扫描线中的一条水平扫描线;

根据剩余水平扫描线形成最终扫描线,所述剩余水平扫描线为全部的水平到描线中除丢弃的水平扫描线以外的水平扫描线。

结合第一个方面的第二种可能的实现方式或第一个方面的第三种可能的实现方式,在第四种可能的实现方式中,所述获取与每个端点纵坐标相同的水平扫描线以形成最终扫描线之后,还包括:

沿纵坐标轴方向逐一扫描所述最终扫描线;

所述根据所述最终扫描线与所述矢量图形的交点获取所述第一三角形和所述第二三角形,包括:

当扫描到所述最终扫描线且所述最终扫描线与所述矢量图形之间存在一个第一交点时,根据所述第一交点获取与所述第一交点对应的第一线段,所述第一交点为所述最终扫描线与所述矢量图形之间的,除所述最终扫描线对应的端点以外的交点;

当所述最终扫描线对应的端点位于所述第一子路径上时,将所述最终扫描线对应的端点作为所述第一三角形的第一顶点,将所述第一线段的两个端点分别作为所述第一三角形的第二顶点和第三顶点;

当所述最终扫描线对应的端点位于所述第二子路径上时,将所述最终扫描线对应的端点作为所述第二三角形的第一顶点,将所述第一线段的两个端点分别作为所述第二三角形的第二顶点和第三顶点。

结合第一个方面的第二种可能的实现方式或第一个方面的第三种可能的实现方式,在第五种可能的实现方式中,所述获取与每个端点纵坐标相同的水平扫描线以形成最终扫描线之后,还包括:

沿纵坐标轴方向逐一扫描所述最终扫描线;

所述根据所述最终扫描线与所述矢量图形的交点获取所述第一三角形和所述第二三角形,包括:

当扫描到所述最终扫描线且所述最终扫描线与所述矢量图形之间存在多个第一交点时,确定有效交点,所述有效交点为单一属性且属性为奇数类交点的交点;

根据所述有效交点获取与所述有效交点对应的有效线段,所述第一交点为所述最终扫描线与所述矢量图形之间的,除所述最终扫描线对应的端点以外的交点;

根据有效线段构建有效三角形,当所述有效三角形的一个顶点在第一子路径上,两个顶点在第二子路径上时,所述有效三角形为第一三角形,当所述有效三角形的一个顶点在第二子路径上,两个顶点在第一子路径上时,所述有效三角形为第二三角形。

结合第一个方面的第四种可能的实现方式或第一个方面的第五种可能的实现方式,在第六种可能的实现方式中,还包括:

丢弃当前获取的三角形中的待丢弃顶点,所述当前获取的三角形为所述第一三角形或者所述第二三角形,所述待丢弃顶点为所述当前获取的三角形的三个顶点中第一个被扫描到的顶点。

结合第一个方面或第一个方面的上述任意一种可能的实现方式,在第七种可能的实现方式中,在所述将矢量图形的路径分解为至少一个第一子路径和至少一个第二子路径之前,还包括:

若所述矢量图形中包括曲线路径,根据所述曲线路径获得与所述曲线路径对应的直线路径;

将所述与所述曲线路径对应的直线路径作为所述矢量图形的路径。

结合第一个方面的第七种可能的实现方式,在第八种可能的实现方式中,所述曲线路径包含至少一个弧线路径,所述弧线路径的弧度小于π;

所述根据所述曲线路径获得与所述曲线路径对应的直线路径,包括:

针对每个所述弧线路径作如下处理:逐一直线连接所述弧线路径的起始点、控制点以及弧线路径的终点以构成第一直线路径;

获取第一直线路径中每个线段的中点,逐一直线连接所述起始点、所述每个线段的中点以及所述终点以构成第二直线路径;

判断所述第二直线路径是否逼近所述弧线路径;

当所述第二直线路径逼近所述弧线路径时,将所述第二直线路径对应于所述弧线路径;

否则,将所述第二直线路径作为所述第一直线路径以生成新的第二直线路径直到所述新的第二直线路径逼近所述弧线路径。

结合第一个方面的第六种可能的实现方式,在第九种可能的实现方式中,所述将矢量图形的路径分离为至少一个第一子路径和至少一个第二子路径,包括:

查找矢量图形的路径上至少一个顺向局部最小端点;

查找与所述顺向局部最小端点对应的顺向局部最大端点;

根据所述顺向局部最小端点、所述顺向局部最大端点以及所述顺向局部最小端点与所述顺向局部最大端点之间的所述矢量图形的路径上的端点,构成所述第一子路径;

查找矢量图形的路径上至少一个逆向局部最小端点;

查找与所述逆向局部最小端点对应的逆向局部最大端点;

根据所述逆向局部最小端点、所述逆向局部最大端点以及所述逆向局部最小端点与所述逆向局部最大端点之间的所述矢量图形的路径上的端点,构成所述第二子路径。

结合第一个方面的第九种可能的实现方式,在第十种可能的实现方式中,所述查找矢量图形的路径上至少一个顺向局部最小端点,包括:

将所述矢量图形的路径的起始点作为第一端点;

获取与所述第一端点相邻的第二端点和第三端点;所述第二端点与所述第一端点构成一直连线段,为图像顺向形成过程中,与当前点对应的后生成的相邻的点;所述第三端点与所述第一端点构成一直连线段,为图像顺向形成过程中,与当前点对应的先生成的相邻的点;

判断所述第一端点的y值是否小于第二端点的y值且不大于第三端点的y值;

若是,所述第一端点为所述顺向局部最小端点;否则,将所述第二端点作为新的第一端点并获取与所述新的第一端点相邻的新的第二端点和新的第三端点直到所述新的第一端点的y值小于所述新的第二端点的y值且不大于所述新的第三端点的y值。

结合第一个方面的第九种可能的实现方式,在第十一种可能的实现方式中,所述查找与所述顺向局部最小端点对应的顺向局部最大端点,包括:

获取与所述顺向局部最大端点对应的第二端点作为第四端点,第二端点为图像顺向形成过程中,与当前点对应的后生成的相邻的点;

获取与所述第四端点对应的第二端点;

判断所述第四端点的y值是否大于所述第四端点对应的第二端点的y值;

若是,所述第四端点为所述顺向局部最大端点,否则,将所述第四端点对应的第二端点作为新的第四端点,并获取新的与所述新的第四端点对应的第二端点直到所述新的第四端点的y值大于新的第四端点对应的第二端点。

结合第一个方面的第九种可能的实现方式,在第十二种可能的实现方式中,所述查找矢量图形的路径上至少一个逆向局部最小端点,包括:

将所述矢量图形的路径的终点作为第五端点;

获取与所述第五端点相邻的第六端点和第七端点;所述第六端点与所述第五端点构成一直连线段,为图像逆向形成过程中,与当前点对应的后生成的相邻的点;所述第七端点与所述第五端点构成一直连线段,为图像逆向形成过程中,与当前点对应的先生成的相邻的点;

判断所述第五端点的y值是否小于第六端点的y值且不大于第七端点的y值;

若是,所述第五端点为所述顺向局部最小端点;否则,将所述第六端点作为新的第五端点并获取与所述新的第五端点相邻的新的第六端点和新的第七端点直到所述新的第五端点的y值小于所述新的第六端点的y值且不大于所述新的第七端点的y值。

结合第一个方面的第九种可能的实现方式,在第十三种可能的实现方式中,所述查找与所述逆向局部最小端点对应的逆向局部最大端点,包括:

获取与所述逆向局部最大端点对应的第六端点作为第八端点,第六端点为图像逆向形成过程中,与当前点对应的后生成的相邻的点;

获取与所述第八端点对应的第六端点;

判断所述第八端点的y值是否大于所述第八端点对应的第六端点的y值;

若是,所述第八端点为所述逆向局部最大端点,否则,将所述第八端点对应的第六端点作为新的第八端点,并获取新的与所述新的第八端点对应的第六端点直到所述新的第八端点的y值大于新的第八端点对应的第六端点。

本发明的第二个方面是提供一种矢量图形处理装置,包括:

分离模块,用于将矢量图形的路径分离为至少一个第一子路径和至少一个第二子路径;所述第一子路径上的端点的纵轴坐标值单调递增;所述第二子路径上的端点的纵轴坐标值单调递减;

第一获取模块,用于遍历所述矢量图形上的所有端点以获取第一三角形和第二三角形,所述第一三角形的第一顶点为所述第一子路径上的端点,所述第一三角形的第二顶点和第三顶点为所述第二子路径上相邻的两个端点,所述第二三角形的第一顶点为所述第二子路径上的端点,所述第二三角形的第二顶点和第三顶点为所述第一子路径上相邻的两个端点;

存储模块,用于将遍历得到的全部所述第一三角形和所述第二三角形存储在所述三角形集合中;

显示模块,用于根据所述三角形集合中的第一三角形和第二三角形进行所述矢量图形的显示。

结合第二个方面,在第一种可能的实现方式中,所述第一三角形的第一顶点的纵坐标大于所述第一三角形的第二顶点的纵坐标且小于所述第一三角形的第三顶点的纵坐标;

所述第二三角形的第一顶点的纵坐标大于所述第二三角形的第二顶点的纵坐标且小于所述第二三角形的第三顶点的纵坐标。

结合第二个方面或第二个方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一获取模块,包括:

遍历单元,用于遍历所述矢量图形上的所有端点;

第一获取单元,用于获取与每个端点纵坐标相同的水平扫描线以形成最终扫描线;

第二获取单元,用于根据所述第一获取单元获取的所述最终扫描线与所述矢量图形的交点获取所述第一三角形和所述第二三角形。

结合第二个方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第一获取单元,包括:

第一获取子单元,用于获取与每个端点纵坐标相同的水平扫描线;所述每个端点与水平扫描线为一对一绑定关系;

丢弃子单元,用于在所述第一获取子单元获取的任意两个相邻的水平扫描线之间的垂直距离小于预设距离阈值时,丢弃所述任意两个相邻的水平扫描线中的一条水平扫描线;

第一生成子单元,用于根据剩余水平扫描线形成最终扫描线,所述剩余水平扫描线为全部的水平到描线中除丢弃的水平扫描线以外的水平扫描线。

结合第二个方面的第二种可能的实现方式或第二个方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一获取模块还包括:

扫描单元,用于沿纵坐标轴方向逐一扫描所述第一获取单元获取的所述最终扫描线;

所述第二获取单元,包括:

第二获取子单元,用于当扫描到所述最终扫描线且所述最终扫描线与所述矢量图形之间存在一个第一交点时,根据所述第一交点获取与所述第一交点对应的第一线段,所述第一交点为所述最终扫描线与所述矢量图形之间的,除所述最终扫描线对应的端点以外的交点;

第一处理子单元,用于当所述最终扫描线对应的端点位于所述第一子路径上时,将所述最终扫描线对应的端点作为所述第一三角形的第一顶点,将所述第一线段的两个端点分别作为所述第一三角形的第二顶点和第三顶点;

第二处理子单元,用于当所述最终扫描线对应的端点位于所述第二子路径上时,将所述最终扫描线对应的端点作为所述第二三角形的第一顶点,将所述第一线段的两个端点分别作为所述第二三角形的第二顶点和第三顶点。

结合第二个方面的第二种可能的实现方式或第二个方面的第三种可能的实现方式,在第五种可能的实现方式中,所述第一获取模块,还包括:

扫描单元,用于沿纵坐标轴方向逐一扫描所述最终扫描线;

所述第二获取单元,包括:

第一确定子单元,用于当扫描到所述最终扫描线且所述最终扫描线与所述矢量图形之间存在多个第一交点时,确定有效交点,所述有效交点为单一属性且属性为奇数类交点的交点;

第三获取子单元,用于根据所述第一确定子单元确定的所述有效交点获取与所述有效交点对应的有效线段,所述第一交点为所述最终扫描线与所述矢量图形之间的,除所述最终扫描线对应的端点以外的交点;

构建子单元,用于根据所述第三获取子单元获取的所述有效线段构建有效三角形,当所述有效三角形的一个顶点在第一子路径上,两个顶点在第二子路径上时,所述有效三角形为第一三角形,当所述有效三角形的一个顶点在第二子路径上,两个顶点在第一子路径上时,所述有效三角形为第二三角形。

结合第二个方面的第四种可能的实现方式或第二个方面的第五种可能的实现方式,在第六种可能的实现方式中,还包括:

丢弃模块,用于丢弃当前获取的三角形中的待丢弃顶点,所述当前获取的三角形为所述第一三角形或者所述第二三角形,所述待丢弃顶点为所述当前获取的三角形的三个顶点中第一个被扫描到的顶点。

结合第二个方面或第二个方面的上述任意一种可能的实现方式,在第七种可能的实现方式中,还包括:

第二获取模块,用于若所述矢量图形中包括曲线路径,根据所述曲线路径获得与所述曲线路径对应的直线路径;

处理模块,用于将所述与所述曲线路径对应的直线路径作为所述矢量图形的路径。

结合第二个方面的第七种可能的实现方式,在第八种可能的实现方式中,所述曲线路径包含至少一个弧线路径,所述弧线路径的弧度小于π;

所述第二获取模块,以述弧线路径为单元进行处理,包括:

第一构建单元,逐一直线连接所述弧线路径的起始点、控制点以及弧线路径的终点以构成第一直线路径;

第一处理单元,用于获取所述第一构建单元构成的第一直线路径中每个线段的中点,逐一直线连接所述起始点、所述每个线段的中点以及所述终点以构成第二直线路径;

第一判断单元,用于判断所述第一处理单元构成的第二直线路径是否逼近所述弧线路径;

第二处理单元,用于当所述第一判断单元判断得到所述第二直线路径逼近所述弧线路径时,将所述第二直线路径对应于所述弧线路径;否则,将所述第二直线路径作为所述第一直线路径以生成新的第二直线路径直到所述新的第二直线路径逼近所述弧线路径。

结合第二个方面的第六种可能的实现方式,在第九种可能的实现方式中,所述分离模块,包括:

第一查找单元,用于查找矢量图形的路径上至少一个顺向局部最小端点;

第二查找单元,用于查找与所述第一查找单元查到的顺向局部最小端点对应的顺向局部最大端点;

第二构建单元,用于根据所述第一查找单元查到的顺向局部最小端点、所述第二查找单元查到的顺向局部最大端点以及所述顺向局部最小端点与所述顺向局部最大端点之间的所述矢量图形的路径上的端点,构成所述第一子路径;

第三查找单元,用于查找矢量图形的路径上至少一个逆向局部最小端点;

第四查找单元,用于查找与所述第三查找单元查到的逆向局部最小端点对应的逆向局部最大端点;

第三构建单元,用于根据所述第三查找单元查到的逆向局部最小端点、所述第四查找单元查到的逆向局部最大端点以及所述逆向局部最小端点与所述逆向局部最大端点之间的所述矢量图形的路径上的端点,构成所述第二子路径。

结合第二个方面的第九种可能的实现方式,在第十种可能的实现方式中,所述第一查找单元,包括:

第三处理子单元,用于将所述矢量图形的路径的起始点作为第一端点;

第三获取子单元,用于获取与所述第三处理子单元得到的第一端点相邻的第二端点和第三端点;所述第二端点与所述第一端点构成一直连线段,为图像顺向形成过程中,与当前点对应的后生成的相邻的点;所述第三端点与所述第一端点构成一直连线段,为图像顺向形成过程中,与当前点对应的先生成的相邻的点;

第一判断子单元,用于判断所述第一端点的y值是否小于第二端点的y值且不大于第三端点的y值;

第四处理子单元,用于当所述第一判断子单元判断得到所述第一端点的y值小于第二端点的y值且不大于第三端点的y值时,所述第一端点为所述顺向局部最小端点;否则,将所述第二端点作为新的第一端点并获取与所述新的第一端点相邻的新的第二端点和新的第三端点直到所述新的第一端点的y值小于所述新的第二端点的y值且不大于所述新的第三端点的y值。

结合第二个方面的第九种可能的实现方式,在第十一种可能的实现方式中,所述第二查找单元,包括:

第四获取子单元,用于获取与所述顺向局部最大端点对应的第二端点作为第四端点,第二端点为图像顺向形成过程中,与当前点对应的后生成的相邻的点;

第五获取子单元,用于获取与所述第四获取子单元获取的第四端点对应的第二端点;

第二判断子单元,用于判断所述第四端点的y值是否大于所述第四端点对应的第二端点的y值;

第五处理子单元,用于当所述第四获取子单元获取的第四端点的y值大于所述第五获取子单元获取的所述第四端点对应的第二端点的y值时,所述第四端点为所述顺向局部最大端点,否则,将所述所述第四端点对应的第二端点作为新的第四端点,并获取新的与所述新的第四端点对应的第二端点直到所述新的第四端点的y值大于新的第四端点对应的第二端点。

结合第二个方面的第九种可能的实现方式,在第十二种可能的实现方式中,所述第三查找单元,包括:

第六处理子单元,用于将所述矢量图形的路径的终点作为第五端点;

第六获取子单元,用于获取与所述第六处理子单元得到的第五端点相邻的第六端点和第七端点;所述第六端点与所述第五端点构成一直连线段,为图像逆向形成过程中,与当前点对应的后生成的相邻的点;所述第七端点与所述第五端点构成一直连线段,为图像逆向形成过程中,与当前点对应的先生成的相邻的点;

第三判断子单元,用于判断所述第五端点的y值是否小于第六端点的y值且不大于第七端点的y值;

第七处理子单元,用于当所述第三判断子单元判断得到所述第五端点的y值小于第六端点的y值且不大于第七端点的y值时,所述第五端点为所述顺向局部最小端点;否则,将所述第六端点作为新的第五端点并获取与所述新的第五端点相邻的新的第六端点和新的第七端点直到所述新的第五端点的y值小于所述新的第六端点的y值且不大于所述新的第七端点的y值。

结合第二个方面的第九种可能的实现方式,在第十三种可能的实现方式中,所述第四查找子单元,包括:

第七获取子单元,用于获取与所述逆向局部最大端点对应的第六端点作为第八端点,第六端点为图像逆向形成过程中,与当前点对应的后生成的相邻的点;

第八获取子单元,用于获取与所述第七获取子单元获取的第八端点对应的第六端点;

第四判断子单元,用于判断所述第八端点的y值是否大于所述第八端点对应的第六端点的y值;

第八处理子单元,用于当所述第四判断子单元判断得到所述第八端点的y值大于所述第八端点对应的第六端点的y值时,所述第八端点为所述逆向局部最大端点,否则,将所述第八端点对应的第六端点作为新的第八端点,并获取新的与所述新的第八端点对应的第六端点直到所述新的第八端点的y值大于新的第八端点对应的第六端点。

本发明实施例提供的矢量图形处理方法和装置,基于端点纵轴坐标值单调递增的至少一个第一子路径和端点纵轴坐标值单调递减的至少一个第二子路径,通过遍历所述矢量图形上的所有端点以获取第一三角形和第二三角形,所述第一三角形的第一顶点为所述第一子路径上的端点,所述第一三角形的第二顶点和第三顶点为所述第二子路径上相邻的两个端点,所述第二三角形的第一顶点为所述第二子路径上的端点,所述第二三角形的第二顶点和第三顶点为所述第一子路径上相邻的两个端点;并将遍历得到的全部所述第一三角形和所述第二三角形存储在所述三角形集合中;最终根据所述三角形集合中的第一三角形和第二三角形进行所述矢量图形的显示。现有技术需要采用扫描线逐帧对矢量图形进行扫描来实现矢量图形的显示,其每一帧都需要进行运算,导致运算量巨大。相比之下,本发明实施例提供的矢量图形处理方法,其基于端点获得上述第一三角形和第二三角形,并根据三角形集合实现矢量图形的显示,无需逐帧对矢量图形进行扫描,降低了运算量,从而降低了处理器的负载。

附图说明

图1为本发明实施例提供的一种矢量图形处理方法的流程示意图;

图2为本发明实施例提供的另一种矢量图形处理方法的流程示意图;

图3为本发明实施例提供的另一种矢量图形处理方法的流程示意图;

图4为本发明实施例提供的另一种矢量图形处理方法的流程示意图;

图5A-5B为本发明实施例提供的一种扫描线示意图;

图6为本发明实施例提供的另一种矢量图形处理方法的流程示意图;

图7为本发明实施例提供的另一种扫描线示意图;

图8为本发明实施例提供的另一种矢量图形处理方法的流程示意图;

图9为本发明实施例提供的一种根据曲线路径获得与曲线路径对应的直线路径的流程示意图;

图10A至10C为本发明实施例提供的一种直线路径逼近弧线路径的示意图;

图11为本发明实施例提供的一种矢量图形处理方法的流程示意图;

图12为本发明实施例提供的一种查找矢量图形的路径上至少一个顺向局部最小端点的流程示意图;

图13为本发明实施例提供的一种查找与所述顺向局部最小端点对应的顺向局部最大端点的流程示意图;

图14为本发明实施例提供的矢量图形局部示意图;

图15为本发明实施例提供的一种查找矢量图形的路径上至少一个逆向局部最小端点的流程示意图;

图16为本发明实施例提供的一种所述查找与所述逆向局部最小端点对应的逆向局部最大端点的流程示意图;

图17为本发明实施例提供的一种矢量图形处理装置的结构示意图;

图18为本发明实施例提供的另一种矢量图形处理装置的结构示意图;

图19为本发明实施例提供的另一种矢量图形处理装置的结构示意图;

图20为本发明实施例提供的另一种矢量图形处理装置的结构示意图;

图21为本发明实施例提供的另一种矢量图形处理装置的结构示意图;

图22为本发明实施例提供的另一种矢量图形处理装置的结构示意图;

图23为本发明实施例提供的另一种矢量图形处理装置的结构示意图;

图24为本发明实施例提供的另一种矢量图形处理装置的结构示意图;

图25为本发明实施例提供的另一种矢量图形处理装置的结构示意图;

图26为本发明实施例提供的另一种矢量图形处理装置的结构示意图;

图27为本发明实施例提供的一种通用终端设备的结构示意图。

具体实施方式

图1为本发明实施例提供的一种矢量图形处理方法的流程示意图,参照图1,该方法包括如下步骤:

步骤100、将矢量图形的路径分离为至少一个第一子路径和至少一个第二子路径;所述第一子路径上的端点的纵轴坐标值单调递增;所述第二子路径上的端点的纵轴坐标值单调递减;

具体的,所述第一子路径包括至少一个线段,每个线段包括两个端点,所述第二子路径包括至少一个线段,每个线段包括两个端点;

步骤101、遍历所述矢量图形上的所有端点以获取第一三角形和第二三角形,所述第一三角形的第一顶点为所述第一子路径上的端点,所述第一三角形的第二顶点和第三顶点为所述第二子路径上相邻的两个端点,所述第二三角形的第一顶点为所述第二子路径上的端点,所述第二三角形的第二顶点和第三顶点为所述第一子路径上相邻的两个端点;

步骤102、将遍历得到的全部所述第一三角形和所述第二三角形存储在所述三角形集合中;

步骤103、根据所述三角形集合中的第一三角形和第二三角形进行所述矢量图形的显示。

本发明实施例提供的矢量图形处理方法,基于端点纵轴坐标值单调递增的至少一个第一子路径和端点纵轴坐标值单调递减的至少一个第二子路径,通过遍历所述矢量图形上的所有端点以获取第一三角形和第二三角形,所述第一三角形的第一顶点为所述第一子路径上的端点,所述第一三角形的第二顶点和第三顶点为所述第二子路径上相邻的两个端点,所述第二三角形的第一顶点为所述第二子路径上的端点,所述第二三角形的第二顶点和第三顶点为所述第一子路径上相邻的两个端点;并将遍历得到的全部所述第一三角形和所述第二三角形存储在所述三角形集合中;最终根据所述三角形集合中的第一三角形和第二三角形进行所述矢量图形的显示。现有技术需要采用扫描线逐帧对矢量图形进行扫描来实现矢量图形的显示,其每一帧都需要进行运算,导致运算量巨大。相比之下,本发明实施例提供的矢量图形处理方法,其基于端点获得上述第一三角形和第二三角形,并根据三角形集合实现矢量图形的显示,无需逐帧对矢量图形进行扫描,降低了运算量,从而降低了处理器的负载。

进一步的,为了避免处理器不必要的重复运算,可以通过限定第一三角形以及第二三角形的三个顶点之间的关系,从而保证成每个第一三角形和每个第二三角形之间避免出现重叠的区域,具体的,一种可能的实现方式为:所述第一三角形的第一顶点的纵坐标大于所述第一三角形的第二顶点的纵坐标且小于所述第一三角形的第三顶点的纵坐标;所述第二三角形的第一顶点的纵坐标大于所述第二三角形的第二顶点的纵坐标且小于所述第二三角形的第三顶点的纵坐标。

可选的,在图1的基础上,图2为本发明实施例提供的另一种矢量图形处理方法的流程示意图,步骤101的一种可能的实现方式为:

步骤101-1、遍历所述矢量图形上的所有端点;

步骤101-2、获取与每个端点纵坐标相同的水平扫描线以形成最终扫描线;

步骤101-3、根据所述最终扫描线与所述矢量图形的交点获取所述第一三角形和所述第二三角形。

进一步的,在图2的基础上,图3为本发明实施例提供的另一种矢量图形处理方法的流程示意图,步骤101-2的一种可能的实现方式为:

步骤101-2a、获取与每个端点纵坐标相同的水平扫描线;所述每个端点与水平扫描线为一对一绑定关系;

步骤101-2b、在任意两个相邻的水平扫描线之间的垂直距离小于预设距离阈值时,丢弃所述任意两个相邻的水平扫描线中的一条水平扫描线;

步骤101-2c、根据剩余水平扫描线形成最终扫描线,所述剩余水平扫描线为全部的水平到描线中除丢弃的水平扫描线以外的水平扫描线。

其中,步骤101-2b丢弃动作的目的在于:当两个相邻的水平扫描线的垂直距离小于预设距离阈值时,在保证计算精度的同时,通过丢弃所述任意两个相邻的水平扫描线中的一个水平扫描线,以降低处理器的计算次数,从而进一步的降低负载。

可选的,在图2的基础上,图4为本发明实施例提供的另一种矢量图形处理方法的流程示意图,参照图4,在步骤101-2之后,还包括:

步骤101-4、沿纵坐标轴方向逐一扫描所述最终扫描线;

继续参照图4,步骤101-3的一种可能的实现方式为:

步骤101-3a、当扫描到所述最终扫描线且所述最终扫描线与所述矢量图形之间存在一个第一交点时,根据所述第一交点获取与所述第一交点对应的第一线段,所述第一交点为所述最终扫描线与所述矢量图形之间的,除所述最终扫描线对应的端点以外的交点;

步骤101-3b、当所述最终扫描线对应的端点位于所述第一子路径上时,将所述最终扫描线对应的端点作为所述第一三角形的第一顶点,将所述第一线段的两个端点分别作为所述第一三角形的第二顶点和第三顶点;

步骤101-3c、当所述最终扫描线对应的端点位于所述第二子路径上时,将所述最终扫描线对应的端点作为所述第二三角形的第一顶点,将所述第一线段的两个端点分别作为所述第二三角形的第二顶点和第三顶点。

下面图5A-5B为本发明实施例提供的一种扫描线示意图,参照图5A,以矩形为例,图5A所示的矢量图形为一矩形,该矩形的四个顶点即为全部端点:P0、P1、P2、P3;

进一步的参照图5B,获取与每个端点(P0、P1、P2、P3)纵坐标相同的水平扫描线;每个端点(P0、P1、P2、P3)与水平扫描线为一对一绑定关系;

由于P0、P1、P2、P3之间垂直距离都较大,因此不需要丢弃不必要的水平扫描线;因此P0、P1、P2、P3分别对应的水平扫描线均为最终扫描线;

进一步的,首先以P2作为扫描的起始点沿纵坐标轴方向向上扫描所有最终扫描线;P2的最终扫描线除P2之外与矩形无其他交点,因此不存在第一交点;则在第一子路径的上扫描P1的最终扫描线,该最终扫描线与矩形交点位于第二子路径上,则该P1作为所述第一三角形的第一顶点;而该最终扫描线在第二子路径上的交点所处线段的两个端点分别为P3和P2,则P3作为所述第二三角形的第二顶点,P2为第三顶点;

同理,沿纵坐标轴方向向上扫描所有最终扫描线获取所述第一三角形和所述第二三角形。

可选的,当矢量图形为不规则图形时,采用上文的方式获取所述第一三角形和所述第二三角形,不能保证获得的所述第一三角形和所述第二三角形的准确性。下面将通过具体的实施例给出一种对复杂不规则的矢量图形进行三角形获取的可能的实现方式。

在图2的基础上,图6为本发明实施例提供的另一种矢量图形处理方法的流程示意图,参照图6,在步骤101-2之后,还包括:

步骤101-4、沿纵坐标轴方向逐一扫描所述最终扫描线;

继续参照图6,步骤101-3的另一种可能的实现方式为:

步骤101-3d、当扫描到所述最终扫描线且所述最终扫描线与所述矢量图形之间存在多个第一交点时,确定有效交点,所述有效交点为单一属性且属性为奇数类交点的交点;

具体的,本实施例中,交点可以存在属性可以分为:单一的奇数类交点、单一的偶数类交点,或既是奇数类交点又是偶数类交点;其中,只有当交点为单一的奇数类交点时,该交点为第一交点。

步骤101-3e、根据所述有效交点获取与所述有效交点对应的有效线段,所述第一交点为所述最终扫描线与所述矢量图形之间的,除所述最终扫描线对应的端点以外的交点;

步骤101-3f、根据有效线段构建有效三角形,当所述有效三角形的一个顶点在第一子路径上,两个顶点在第二子路径上时,所述有效三角形为第一三角形,当所述有效三角形的一个顶点在第二子路径上,两个顶点在第一子路径上时,所述有效三角形为第二三角形。

下面图7为本发明实施例提供的另一种扫描线示意图,参照图7,该不规则矢量图形具有的端点为:M1、M2、M3、M4、M5;每一个端点分别对应一个最终扫描线;其中,M1的扫描线与M3-M5线段有交点M1a、M1的扫描线与M2-M5线段有交点M1b,此时以从右向左的顺序,则该M1a为奇数类交点,而以从左向右的顺序,则该M1a为偶数类交点;因此该M1a不能作为第一交点;类似的M1b也不能作为第一交点;反之,M4的扫描线与与M2-M5线段有交点M4a,以从右向左的顺序,该M4a为奇数类交点,从左向右的顺序,则该M4a也为奇数类交点,则该M4a可以作为第一交点。

采用这样的判断方式,可以有效避免将不属于矢量图形的三角形作为第一三角形或第二三角形,从而避免矢量图形显示错误。例如,由于排除了M1a作为第一交点的可能性,则该处理流程就不会将M1\M3\M5三个点作为第一三角形或第二三角形。

进一步的,无论采用上文图4对应的实施例还是图6对应的实施例,在每次获得一个第一三角形或者所述第二三角形后,为了避免三角形之间出现区域重叠,一种实现方式为:

丢弃当前获取的三角形中的待丢弃顶点,所述当前获取的三角形为所述第一三角形或者所述第二三角形,所述待丢弃顶点为所述当前获取的三角形的三个顶点中第一个被扫描到的顶点。

进一步的,当矢量图形为曲线路径时,首先需要对矢量图形进行直线化处理,直线化处理即:将曲线路径通过近似的直线路径进代替。直线路径可以通过对曲线路径进行多次分解获得。

具体的,在图1的基础上,图8为本发明实施例提供的另一种矢量图形处理方法的流程示意图,参照图8,在步骤100之前,还包括

步骤104、若所述矢量图形中包括曲线路径,根据所述曲线路径获得与所述曲线路径对应的直线路径;

步骤105、将所述与所述曲线路径对应的直线路径作为所述矢量图形的路径。

进一步的,本发明实施例提供一种分解曲线路径的方案,其原理是利用一个控制点和曲线路径上的两个端点对曲线路径进行分解。具体的,图9为本发明实施例提供的一种根据曲线路径获得与曲线路径对应的直线路径的流程示意图,参照图9,步骤104的一种可能的实现方式如下:

步骤104-1、针对每个所述弧线路径作如下处理:逐一直线连接所述弧线路径的起始点、控制点以及弧线路径的终点以构成第一直线路径;

步骤104-2、获取第一直线路径中每个线段的中点,逐一直线连接所述起始点、所述每个线段的中点以及所述终点以构成第二直线路径;

步骤104-3、判断所述第二直线路径是否逼近所述弧线路径;

步骤104-4、当所述第二直线路径逼近所述弧线路径时,将所述第二直线路径对应于所述弧线路径;

步骤104-5、否则,将所述第二直线路径作为所述第一直线路径以生成新的第二直线路径直到所述新的第二直线路径逼近所述弧线路径。

需要说明的是,由于上述控制点为经所述弧线路径的起始点与该弧线路径相切的切线和经所述弧线路径的终点与与该弧线路径相切的切线相交的交点,因此为了保证两条切线能够相交从而获得控制点,当曲线路径由多个弧线路径组成时,则针对每个弧线路径分别进行上述步骤104-1至步骤104-5的处理;并且要保证弧线路径的弧度小于π;当一个弧线路径弧度大于或等于π时,可以将该弧线路径拆分成至少两个弧线路径,则拆分后的每个弧线路径的弧度小于π。

图10A至10C为本发明实施例提供的一种直线路径逼近弧线路径的示意图,参照图10A,以一个弧线路径作为示例,说明本实施例如何基于弧线路径获得上文所述第二直线路径。该弧线路径的两个端点为N1和N2,将N1作为弧线路径的起始点,N2作为弧线路径的终点;经N1和N2分别作弧线路径切线相交于N3,该N3为控制点;则N1-N3-N2构成第一直线路径;

进一步的,参照图10B,取N1和N3的中点N13、取N2和N3的中点N23;连接N1、N13、N23及N2构成第二直线路径,判断该第二直线路径是否逼近所述弧线路径;

其中,判断是否逼近所述弧线路径的一种可能的实现方式为:

获取第二直线路径中任意三个相邻的端点,例如将N1(x0,y0)、N13(x1,y1)、N23(x2,y2)三个点作为输入点、计算三个点的叉积的绝对值,如公式所示:

d=|(x2-x1)*(y1-y0)-(y2-y1)*(x1-x0)|

表明向量N1-N13和向量N13-N23的夹角的大小,d越大表明两向量夹角越大,弧线路径也就越弯,需要分解的次数也就越多;

计算点N1和点N23的距离,如公式所示:

如果d==0或者d*d<=C*length,其中C为曲线的曲率相关的一个参数则表明该弧线路径已经达到一定的平缓标准,不需要进一步分解;如果不满足判断条件,则继续进行分解。

经过上述判断,发现N1、N13、N23及N2构成的第二直线路径不满足逼近的条件,则继续进行分解;取N1和N13的中点N1-13、取N13和N23的中点N13-23、取N23和N2的中点N2-23;则N1、N1-13、N13-23、N2-23及N2构成新的第二直线路径,并在此判断该第二直线路径是否满足逼近弧线路径的条件;经过上述判断,该N1、N1-13、N13-23、N2-23及N2构成新的的第二直线路径不满足逼近的条件,则继续进行分解;

取N1和N1-13的中点N1-1-13;取N1-13和N13-23的中点N1-13-13-23;取N13-23和N2-23的中点N13-23-2-23,取N2-23和N2的中点N2-2-23;参照图10C,该N1、N1-1-13、N1-13-13-23、N13-23-2-23、N2-2-23及N2构成新的的第二直线路径满足上述判断条件,即该第二直线路径逼近该弧线路径,则将该第二直线路径对应于该弧线路径;

进一步的,在图1的基础上,图11为本发明实施例提供的一种矢量图形处理方法的流程示意图,参照图11,步骤100的一种可能的实现方式为:

步骤100-1、查找矢量图形的路径上至少一个顺向局部最小端点;

步骤100-2、查找与所述顺向局部最小端点对应的顺向局部最大端点;

步骤100-3、根据所述顺向局部最小端点、所述顺向局部最大端点以及所述顺向局部最小端点与所述顺向局部最大端点之间的所述矢量图形的路径上的端点,构成所述第一子路径;

步骤100-4、查找矢量图形的路径上至少一个逆向局部最小端点;

步骤100-5、查找与所述逆向局部最小端点对应的逆向局部最大端点;

步骤100-6、根据所述逆向局部最小端点、所述逆向局部最大端点以及所述逆向局部最小端点与所述逆向局部最大端点之间的所述矢量图形的路径上的端点,构成所述第二子路径。

进一步的,图12为本发明实施例提供的一种查找矢量图形的路径上至少一个顺向局部最小端点的流程示意图,参照图12,步骤100-1的一种可能的实现方式为:

步骤100-1a、将所述矢量图形的路径的起始点作为第一端点;

具体的,该矢量图形的路径的起始点可以为所有端点中纵坐标最小的端点;或者在一定范围内纵坐标最小的端点;

步骤100-1b、获取与所述第一端点相邻的第二端点和第三端点;所述第二端点与所述第一端点构成一直连线段,为图像顺向形成过程中,与当前点对应的后生成的相邻的点;所述第三端点与所述第一端点构成一直连线段,为图像顺向形成过程中,与当前点对应的先生成的相邻的点;

步骤100-1c、判断所述第一端点的y值是否小于第二端点的y值且不大于第三端点的y值;

步骤100-1d1、若是,所述第一端点为所述顺向局部最小端点;

步骤100-1d2、否则,将所述第二端点作为新的第一端点并获取与所述新的第一端点相邻的新的第二端点和新的第三端点直到所述新的第一端点的y值小于所述新的第二端点的y值且不大于所述新的第三端点的y值。

具体的,步骤100-1d2中新的第三端点为步骤100-1a中的第一端点。

可选的,图13为本发明实施例提供的一种查找与所述顺向局部最小端点对应的顺向局部最大端点的流程示意图,参照图13,步骤100-2的一种可能的实现方式为:

步骤100-2a、获取与所述顺向局部最大端点对应的第二端点作为第四端点,第二端点为图像顺向形成过程中,与当前点对应的后生成的相邻的点;

步骤100-2b、获取与所述第四端点对应的第二端点;

步骤100-2c、判断所述第四端点的y值是否大于所述第四端点对应的第二端点的y值;

步骤100-2d1、若是,所述第四端点为所述顺向局部最大端点,

步骤100-2d2、否则,将所述第四端点对应的第二端点作为新的第四端点,并获取新的与所述新的第四端点对应的第二端点直到所述新的第四端点的y值大于新的第四端点对应的第二端点。

图14为本发明实施例提供的矢量图形局部示意图,参照图14,将S1作为第一端点;获取S1相邻的第二端点S2和第三端点S0;

确定是否满足顺向局部最小端点判断条件:所述S1的y值是否小于S2的y值且不大于S0的y值;

若是,则可以确定S1为所述顺向局部最小端点;若否,S2作为新的第一端点并获取与S2相邻的新的第二端点S3和新的第三端点S1;直至获得某一个端点满足上述顺向局部最小端点判断条件。

进一步的,以S1为顺向局部最小端点,查找与所述顺向局部最小端点对应的顺向局部最大端点;具体查找顺向局部最大端点的实现方式参照图14,

将S4作为顺向局部最大端点,则S5为S4对应的第二端点;

判断所述S4的y值是否大于S4对应的S5的y值;

若是,S4为所述顺向局部最大端点,否则,将S4对应S5作为新的第四端点,并获取新的与所述新的S5对应的第二端点S6直到所述新的第四端点的y值大于新的第四端点对应的第二端点。

进一步的,在获得了顺向局部最小端点S1和所述顺向局部最大端点S4后,S1、S4以及S1与S4之间的所述矢量图形的路径上的端点S2、S3构成所述第一子路径(S1、S2、S3、S4)。

进一步的,第二子路径的获取方式与上述第一子路径的获取方式类似,此处不再赘述。

可选的,图15为本发明实施例提供的一种查找矢量图形的路径上至少一个逆向局部最小端点的流程示意图,参照图15,步骤100-4的一种可能的实现方式为:

步骤100-4a、将所述矢量图形的路径的终点作为第五端点;

步骤100-4b、获取与所述第五端点相邻的第六端点和第七端点;所述第六端点与所述第五端点构成一直连线段,为图像逆向形成过程中,与当前点对应的后生成的相邻的点;所述第七端点与所述第五端点构成一直连线段,为图像逆向形成过程中,与当前点对应的先生成的相邻的点;

步骤100-4c、判断所述第五端点的y值是否小于第六端点的y值且不大于第七端点的y值;

步骤100-4d1、若是,所述第五端点为所述顺向局部最小端点;

步骤100-4d2、否则,将所述第六端点作为新的第五端点并获取与所述新的第五端点相邻的新的第六端点和新的第七端点直到所述新的第五端点的y值小于所述新的第六端点的y值且不大于所述新的第七端点的y值。

具体的,步骤100-4d中新的第七端点为步骤100-4a中的第五端点。

可选的,图16为本发明实施例提供的一种所述查找与所述逆向局部最小端点对应的逆向局部最大端点的流程示意图,参照图16,步骤100-5的一种可能的实现方式为:

步骤100-5a、获取与所述逆向局部最大端点对应的第六端点作为第八端点,第六端点为图像逆向形成过程中,与当前点对应的后生成的相邻的点;

步骤100-5b、获取与所述第八端点对应的第六端点;

步骤100-5c、判断所述第八端点的y值是否大于所述第八端点对应的第六端点的y值;

步骤100-5d1、若是,所述第八端点为所述逆向局部最大端点;

步骤100-5d2、否则,将所述第八端点对应的第六端点作为新的第八端点,并获取新的与所述新的第八端点对应的第六端点直到所述新的第八端点的y值大于新的第八端点对应的第六端点。

需要说明的是,逆向局部最小端点和逆向局部最大端点的获取方式与上文图14所示的顺向局部最小端点和顺向局部最大端点的获取方式类似,此处不再赘述。

图17为本发明实施例提供的一种矢量图形处理装置的结构示意图,该矢量图形处理装置可以执行上文各个实施例对应的步骤,并实现相应的技术效果,参照图17,该装置包括:分离模块20、第一获取模块21、存储模块22、显示模块23;

分离模块20,用于将矢量图形的路径分离为至少一个第一子路径和至少一个第二子路径;所述第一子路径上的端点的纵轴坐标值单调递增;所述第二子路径上的端点的纵轴坐标值单调递减;

第一获取模块21,用于遍历所述矢量图形上的所有端点以获取第一三角形和第二三角形,所述第一三角形的第一顶点为所述第一子路径上的端点,所述第一三角形的第二顶点和第三顶点为所述第二子路径上相邻的两个端点,所述第二三角形的第一顶点为所述第二子路径上的端点,所述第二三角形的第二顶点和第三顶点为所述第一子路径上相邻的两个端点;

存储模块22,用于将遍历得到的全部所述第一三角形和所述第二三角形存储在所述三角形集合中;

显示模块23,用于根据所述三角形集合中的第一三角形和第二三角形进行所述矢量图形的显示。

本发明实施例提供的矢量图形处理装置,分离模块将矢量图形的路径分离为至少一个第一子路径和至少一个第二子路径,基于端点纵轴坐标值单调递增的至少一个第一子路径和端点纵轴坐标值单调递减的至少一个第二子路径,通过第一获取模块遍历所述矢量图形上的所有端点以获取第一三角形和第二三角形,所述第一三角形的第一顶点为所述第一子路径上的端点,所述第一三角形的第二顶点和第三顶点为所述第二子路径上相邻的两个端点,所述第二三角形的第一顶点为所述第二子路径上的端点,所述第二三角形的第二顶点和第三顶点为所述第一子路径上相邻的两个端点;存储模块将遍历得到的全部所述第一三角形和所述第二三角形存储在所述三角形集合中;最终显示模块根据所述三角形集合中的第一三角形和第二三角形进行所述矢量图形的显示。现有技术需要采用扫描线逐帧对矢量图形进行扫描来实现矢量图形的显示,其每一帧都需要进行运算,导致运算量巨大。相比之下,本发明实施例提供的矢量图形处理方法,其基于端点获得上述第一三角形和第二三角形,并根据三角形集合实现矢量图形的显示,无需逐帧对矢量图形进行扫描,降低了运算量,从而降低了处理器的负载。

可选的,所述第一三角形的第一顶点的纵坐标大于所述第一三角形的第二顶点的纵坐标且小于所述第一三角形的第三顶点的纵坐标;

所述第二三角形的第一顶点的纵坐标大于所述第二三角形的第二顶点的纵坐标且小于所述第二三角形的第三顶点的纵坐标。

在图17的基础上,图18为本发明实施例提供的另一种矢量图形处理装置的结构示意图,参照图18,该第一获取模块21,包括:

遍历单元21-1,用于遍历所述矢量图形上的所有端点;

第一获取单元21-2,用于获取与每个端点纵坐标相同的水平扫描线以形成最终扫描线;

第二获取单元21-3,用于根据所述第一获取单元21-2获取的所述最终扫描线与所述矢量图形的交点获取所述第一三角形和所述第二三角形。

进一步的,继续参照图18,所述第一获取单元21-2,包括:

第一获取子单元21-2a,用于获取与每个端点纵坐标相同的水平扫描线;所述每个端点与水平扫描线为一对一绑定关系;

丢弃子单元21-2b,用于在所述第一获取子单元21-2a获取的任意两个相邻的水平扫描线之间的垂直距离小于预设距离阈值时,丢弃所述任意两个相邻的水平扫描线中的一条水平扫描线;

第一生成子单元21-2c,用于根据剩余水平扫描线形成最终扫描线,所述剩余水平扫描线为全部的水平到描线中除丢弃的水平扫描线以外的水平扫描线。

在图18的基础上,图19为本发明实施例提供的另一种矢量图形处理装置的结构示意图,参照图19,该第一获取模块21,包括:

扫描单元21-4,用于沿纵坐标轴方向逐一扫描所述第一获取单元21-2获取的所述最终扫描线;

继续参照图19,所述第二获取单元21-3,包括:

第二获取子单元21-3a,用于当扫描到所述最终扫描线且所述最终扫描线与所述矢量图形之间存在一个第一交点时,根据所述第一交点获取与所述第一交点对应的第一线段,所述第一交点为所述最终扫描线与所述矢量图形之间的,除所述最终扫描线对应的端点以外的交点;

第一处理子单元21-3b,用于当所述最终扫描线对应的端点位于所述第一子路径上时,将所述最终扫描线对应的端点作为所述第一三角形的第一顶点,将所述第一线段的两个端点分别作为所述第一三角形的第二顶点和第三顶点;

第二处理子单元21-3c,用于当所述最终扫描线对应的端点位于所述第二子路径上时,将所述最终扫描线对应的端点作为所述第二三角形的第一顶点,将所述第一线段的两个端点分别作为所述第二三角形的第二顶点和第三顶点。

在图18的基础上,图20为本发明实施例提供的另一种矢量图形处理装置的结构示意图,参照图20,该第一获取模块21,包括:

扫描单元21-4,用于沿纵坐标轴方向逐一扫描所述最终扫描线;

所述第二获取单元21-3,包括:

第一确定子单元21-3d,用于当扫描到所述最终扫描线且所述最终扫描线与所述矢量图形之间存在多个第一交点时,确定有效交点,所述有效交点为单一属性且属性为奇数类交点的交点;

第三获取子单元21-3e,用于根据所述第一确定子单元21-3d确定的所述有效交点获取与所述有效交点对应的有效线段,所述第一交点为所述最终扫描线与所述矢量图形之间的,除所述最终扫描线对应的端点以外的交点;

构建子单元21-3f,用于根据所述第三获取子单元21-3e获取的所述有效线段构建有效三角形,当所述有效三角形的一个顶点在第一子路径上,两个顶点在第二子路径上时,所述有效三角形为第一三角形,当所述有效三角形的一个顶点在第二子路径上,两个顶点在第一子路径上时,所述有效三角形为第二三角形。

在图17的基础上,图21为本发明实施例提供的另一种矢量图形处理装置的结构示意图,参照图21,该装置,还包括:丢弃模块24;

丢弃模块24,用于丢弃当前获取的三角形中的待丢弃顶点,所述当前获取的三角形为所述第一三角形或者所述第二三角形,所述待丢弃顶点为所述当前获取的三角形的三个顶点中第一个被扫描到的顶点。

在图17的基础上,图22为本发明实施例提供的另一种矢量图形处理装置的结构示意图,参照图22,该装置还包括:

第二获取模块25,用于若所述矢量图形中包括曲线路径,根据所述曲线路径获得与所述曲线路径对应的直线路径;

处理模块26,用于将所述与所述曲线路径对应的直线路径作为所述矢量图形的路径。

可选的,所述曲线路径包含至少一个弧线路径,所述弧线路径的弧度小于π;

继续参照22,图22所述第二获取模块25,以述弧线路径为单元进行处理,包括:

第一构建单元25-1,逐一直线连接所述弧线路径的起始点、控制点以及弧线路径的终点以构成第一直线路径;

第一处理单元25-2,用于获取所述第一构建单元25-1构成的第一直线路径中每个线段的中点,逐一直线连接所述起始点、所述每个线段的中点以及所述终点以构成第二直线路径;

第一判断单元25-3,用于判断所述第一处理单元25-2构成的第二直线路径是否逼近所述弧线路径;

第二处理单元25-4,用于当所述第一判断单元25-3判断得到所述第二直线路径逼近所述弧线路径时,将所述第二直线路径对应于所述弧线路径;否则,将所述第二直线路径作为所述第一直线路径以生成新的第二直线路径直到所述新的第二直线路径逼近所述弧线路径。

可选的,继续参照22,所述分离模块20,包括:

第一查找单元20-1,用于查找矢量图形的路径上至少一个顺向局部最小端点;

第二查找单元20-2,用于查找与所述第一查找单元20-1查到的顺向局部最小端点对应的顺向局部最大端点;

第二构建单元20-3,用于根据所述第一查找单元20-1查到的顺向局部最小端点、所述第二查找单元20-2查到的顺向局部最大端点以及所述顺向局部最小端点与所述顺向局部最大端点之间的所述矢量图形的路径上的端点,构成所述第一子路径;

第三查找单元20-4,用于查找矢量图形的路径上至少一个逆向局部最小端点;

第四查找单元20-5,用于查找与所述第三查找单元20-4查到的逆向局部最小端点对应的逆向局部最大端点;

第三构建单元20-6,用于根据所述第三查找单元20-4查到的逆向局部最小端点、所述第四查找单元20-5查到的逆向局部最大端点以及所述逆向局部最小端点与所述逆向局部最大端点之间的所述矢量图形的路径上的端点,构成所述第二子路径。

可选的,在图22的基础上,图23为本发明实施例提供的另一种矢量图形处理装置的结构示意图,参照图23,所述第一查找单元20-1,包括:

第三处理子单元20-1a,用于将所述矢量图形的路径的起始点作为第一端点;

第三获取子单元20-1b,用于获取与所述第三处理子单元20-1a得到的第一端点相邻的第二端点和第三端点;所述第二端点与所述第一端点构成一直连线段,为图像顺向形成过程中,与当前点对应的后生成的相邻的点;所述第三端点与所述第一端点构成一直连线段,为图像顺向形成过程中,与当前点对应的先生成的相邻的点;

第一判断子单元20-1c,用于判断所述第一端点的y值是否小于第二端点的y值且不大于第三端点的y值;

第四处理子单元20-1d,用于当所述第一判断子单元20-1c判断得到所述第一端点的y值小于第二端点的y值且不大于第三端点的y值时,所述第一端点为所述顺向局部最小端点;否则,将所述第二端点作为新的第一端点并获取与所述新的第一端点相邻的新的第二端点和新的第三端点直到所述新的第一端点的y值小于所述新的第二端点的y值且不大于所述新的第三端点的y值。

可选的,在图22的基础上,图24为本发明实施例提供的另一种矢量图形处理装置的结构示意图,参照图24,所述第二查找单元20-2,包括:

第四获取子单元20-2a,用于获取与所述顺向局部最大端点对应的第二端点作为第四端点,第二端点为图像顺向形成过程中,与当前点对应的后生成的相邻的点;

第五获取子单元20-2b,用于获取与所述第四获取子单元20-2a获取的第四端点对应的第二端点;

第二判断子单元20-2c,用于判断所述第四端点的y值是否大于所述第四端点对应的第二端点的y值;

第五处理子单元20-2d,用于当所述第四获取子单元20-2a获取的第四端点的y值大于所述第五获取子单元20-2b获取的所述第四端点对应的第二端点的y值时,所述第四端点为所述顺向局部最大端点,否则,将所述所述第四端点对应的第二端点作为新的第四端点,并获取新的与所述新的第四端点对应的第二端点直到所述新的第四端点的y值大于新的第四端点对应的第二端点。

可选的,在图22的基础上,图25为本发明实施例提供的另一种矢量图形处理装置的结构示意图,参照图25,所述第三查找单元20-4,包括:

第六处理子单元20-4a,用于将所述矢量图形的路径的终点作为第五端点;

第六获取子单元20-4b,用于获取与所述第六处理子单元20-4a得到的第五端点相邻的第六端点和第七端点;所述第六端点与所述第五端点构成一直连线段,为图像逆向形成过程中,与当前点对应的后生成的相邻的点;所述第七端点与所述第五端点构成一直连线段,为图像逆向形成过程中,与当前点对应的先生成的相邻的点;

第三判断子单元20-4c,用于判断所述第五端点的y值是否小于第六端点的y值且不大于第七端点的y值;

第七处理子单元20-4d,用于当所述第三判断子单元20-4c判断得到所述第五端点的y值小于第六端点的y值且不大于第七端点的y值时,所述第五端点为所述顺向局部最小端点;否则,将所述第六端点作为新的第五端点并获取与所述新的第五端点相邻的新的第六端点和新的第七端点直到所述新的第五端点的y值小于所述新的第六端点的y值且不大于所述新的第七端点的y值。

可选的,在图22的基础上,图26为本发明实施例提供的另一种矢量图形处理装置的结构示意图,参照图26,所述第四查找子单元20-5,包括:

第七获取子单元20-5a,用于获取与所述逆向局部最大端点对应的第六端点作为第八端点,第六端点为图像逆向形成过程中,与当前点对应的后生成的相邻的点;

第八获取子单元20-5b,用于获取与所述第七获取子单元20-5a获取的第八端点对应的第六端点;

第四判断子单元20-5c,用于判断所述第八端点的y值是否大于所述第八端点对应的第六端点的y值;

第八处理子单元20-5d,用于当所述第四判断子单元20-5c判断得到所述第八端点的y值大于所述第八端点对应的第六端点的y值时,所述第八端点为所述逆向局部最大端点,否则,将所述第八端点对应的第六端点作为新的第八端点,并获取新的与所述新的第八端点对应的第六端点直到所述新的第八端点的y值大于新的第八端点对应的第六端点。

图27为本发明实施例提供的一种通用终端设备的结构示意图,参照图27,该通用终端设备包括:CPU-10A、图形处理器(Graphics Processing Unit,缩写:GPU)-10B和存储器-10C;

其中,存储器-10C具有存储模块22的相应功能;

CPU-10A可以具有上述分离模块20、获取模块21、显示模块23以及丢弃模块24的相应功能,并实现相应的技术效果;或者,

可选的,GPU-10B也可具有上述分离模块20、获取模块21、显示模块23以及丢弃模块24的相应功能,并实现相应的技术效果;

或者,将分离模块20、获取模块21、显示模块23以及丢弃模块24的相应功能分别由CPU-10A和GPU-10B协作实现,例如,分离模块20、获取模块21以及丢弃模块24的相应功能由CPU-10A实现,显示模块23的相应功能由GPU-10B实现等,本实施例不予具体限定。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1