一种展示矢量图形的方法和终端的制作方法

文档序号:6426167阅读:196来源:国知局
专利名称:一种展示矢量图形的方法和终端的制作方法
技术领域
本发明涉及无线通信技术领域,特别是涉及一种展示矢量图形的方法和终端。
背景技术
SVG(Scalable Vector Graphics,可缩放矢量图形)是基于XML(可扩展标记)语言来描述二维矢量图像的一种图形格式。SVG标准由W3C制定,是一个开放的国际标准。SVG标准中定义了一些基础图形的标签,如,用于显示矩形的矩形标签或用于显示圆形的圆形标签。目前,一些浏览器和图形编辑软件支持SVG技术,能够展示二维矢量图形。另外, 由于SVG技术是基于XML的,因而能够制作出动态交互图像。而作为SVG技术的一个应用,在手机等无线手持设备上的应用也是3G时代最重要的应用之一。支持SVG技术的手机,允许用户查看高质量的矢量图形及动画,同时,由于SVG技术采用文本传输,尺寸也会非常小,速度将会更快。但是,SVG技术仅支持展示二维矢量图形,并不支持三维矢量图形的展示。

发明内容
为了解决上述技术问题,本发明实施例提供了一种展示矢量图形的方法和终端,以支持展示三维矢量图形。本发明实施例公开了如下技术方案—种展示矢量图形的方法,包括读取扩缩放矢量图形SVG文件;解析所述SVG文件,得到展示三维矢量图形的三维标签和所述三维标签的子标签;从所述三维标签中提取出描述三维空间平面属性的三维参数,从所述三维标签的子标签中提取出描述二维矢量图形属性的二维参数,其中,在所述二维参数中增加了描述图形厚度属性的参数,所述三维参数包括三维空间平面在三维空间中的起始位置、三维空间平面的大小和三维空间平面分别与X轴和Y轴的夹角;将提取出的参数传递给图形绘制接口,以便所述图形绘制接口根据接收的参数,在三维参数描述的三维空间平面上绘制二维参数描述的二维矢量图形,并展示绘制得到的三维矢量图形。一种展示矢量图形的终端,包括读取单元,用于读取扩缩放矢量图形SVG文件;解析单元,用于解析所述SVG文件,得到展示三维矢量图形的三维标签和所述三维标签的子标签;参数提取单元,用于从所述三维标签中提取出描述三维空间平面属性的三维参数,从所述三维标签的子标签中提取出描述二维矢量图形属性的二维参数,其中,在所述二维参数中增加了描述图形厚度属性的参数,所述三维参数包括三维空间平面在三维空间中的起始位置、三维空间平面的大小和三维空间平面分别与X轴和Y轴的夹角;三维展示单元,用于将提取出的参数传递给图形绘制接口,以便所述图形绘制接口根据接收的参数,在三维参数描述的三维空间平面上绘制二维参数描述的二维矢量图形,并展示绘制得到的三维矢量图形。
由上述实施例可以看出,在SVG文件中扩展三维标签,以及在三维标签的子标签中扩展描述图形厚度属性的参数,通过三维标签和三维标签的子标签中的参数,可以展示
三维矢量图形。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明一种展示矢量图形的方法的一个实施例的流程图;图2-1为现有的一个二维矢量图形;图2-2为本发明的一个三维矢量图形; 图3为本发明一种展示矢量图形的方法的另一个实施例的流程图;图4为本发明中展示一个立方体三维矢量图形和一个正方体的二维矢量图形的流程图;图5为本发明一种展示矢量图形的终端的一个实施例的结构图;图6为本发明一种展示矢量图形的终端的另一个实施例的结构图;图7为本发明中二维展示单元的一个结构示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例进行详细描述。请参阅图1,其为本发明一种展示矢量图形的方法的一个实施例的流程图,包括以下步骤步骤101 :读取扩缩放矢量图形SVG文件;步骤102 :解析所述SVG文件,得到展示三维矢量图形的三维标签和所述三维标签的子标签;步骤103 :从所述三维标签中提取出描述三维空间平面属性的三维参数,从所述三维标签的子标签中提取出描述二维矢量图形属性的二维参数,其中,在所述二维参数中增加了描述图形厚度属性的参数,所述三维参数包括三维空间平面在三维空间中的启示位置、三维空间平面的大小和三维空间平面分别与X轴和Y轴的夹角;在本发明的技术方案中,为了能够使SVG文件展示三维矢量图形,在SVG文件中包括展示三维矢量图形的三维标签和三维标签的子标签。通过解析SVG文件,得到三维标签和三维标签的子标签。从三维标签中可以提取出描述三维空间平面属性的三维参数,从三维标签的子标签中可以提取出描述二维矢量图形属性的二维参数。其中,三维参数包括三维空间平面在三维空间中的起始位置、三维空间平面的大小和三维空间平面分别与X轴和Y轴的夹角。与现有SVG文件的标签中包含的描述二维矢量图形属性的二维参数相比,在三维标签子标签中增加了描述图形厚度属性的参数。例如,以三维标签为“χ =”10” y =”10” z =”10” width =”500” height=,,500” angleX =,,90” angleY = ” 120”为例,其中的x、y和z分别表示一个三维空间平面在三维空间中的X轴、Y轴和Z轴的起始位置为10、10和10,width和height分别表示该三维空间平面的宽为500,高为500,angleX和angleY分别表示该三维空间平面与X轴的夹角为90°,与Y轴的夹角为120°。三维标签的子标签中的二维参数除了包括与现有的SVG文件标签中的二维参数之外,还增加了描述二维矢量图形厚度属性的参数,表示二维矢量图形在三维空间平面上所显示的厚度。例如,以三维标签中的子标签为“χ = " 80 " y = " 60 " width="250 " height = " 250 " rx = " 20 " fill = " red " stroke = " black "stroke-width =" 2px" depth =” 10”” 为例,其中的参数 x、y、width、height、rx、full、stroke和stroke-width为现有的SVG文件标签中的二维参数,depth表示该二维矢量图像在三维空间平面上所显示的厚度。
需要说明的是,在本发明的技术方案中,除了描述图形厚度属性的二维参数外,三维标签的子标签中的其它二维参数与现有的SVG文件标签中的二维参数相同,本发明实施例对此并不进行限定。步骤104 :将提取出的参数传递给图形绘制接口,以便所述图形绘制接口根据接收的参数,在三维参数描述的三维空间平面上绘制二维参数描述的二维矢量图形,并展示绘制得到的三维矢量图形。当在步骤103中提取出三维参数和二维参数后,将提取出的参数传递给图形绘制接口,图形绘制接口在三维参数描述的三维空间平面上绘制二维参数描述的二维矢量图形,进而可以得到一个三维矢量图形。如图2所示,图2-1为现有的一个二维矢量图形,图2-2为本发明的一个三维矢量图形。优选的,所述图形绘制接口包括OpenGUDirectX或SKIA。需要说明的是,在本发明的技术方案中,可以采用现有的任何一种支持SVG文件的图形绘制接口,本发明实施例对采用的图形绘制接口类型并不做具体限定。由上述实施例可以看出,在SVG文件中扩展三维标签,以及在三维标签的子标签中扩展描述图形厚度属性的参数,通过三维标签和三维标签的子标签中的参数,可以展示三维矢量图形。实施例二本实施例与实施例一的区别在于,实施例一中的SVG文件仅支持展示三维矢量图形,本实施例中的SVG文件不仅支持展示三维矢量图形,同时还支持展示二维矢量图形。因此,当解析SVG文件得到标签后,需要进一步区分哪些标签是三维标签及其子标签,哪些标签是二维标签。请参阅图3,其为本发明一种展示矢量图形的方法的另一个实施例的流程图,包括以下步骤步骤301 :读取扩缩放矢量图形SVG文件;步骤302 :解析所述SVG文件,得到SVG中的各个标签;步骤303 :判断当前标签是否是三维标签的子标签,如果是,进入步骤304,否则,进入步骤305 ;其中,所述判断当前标签是否是三维标签的子标签具体为将所述当前标签作为当前节点,如果当前节点是否有父节点,所述当前标签是三维标签的子标签。由于SVG文件中的标签相当于xml文档中的节点,因此,三维标签对应的节点是三维标签的子标签对应的节点的父节点。而二维标签对应的节点无父节点。在解析SVG文件得到标签后,逐一地识别每个标签,即,将当前标签作为当前节点,根据当前节点的节点标识判断当前节点在xml文档中是否有父节点,如果有父节点,说明当前标签是三维标签的子标签。可替换的,所述判断当前标签是否是三维标签的子标签具体为将所述当前标签作为当前节点,根据当前节点的节点标识查找所述当前节点的父节点;如果所述父节点的节点标识与三维标签的节点标识相同,所述当前标签是三维标签的子标签。为了达到识别的准确性,在当前节点有父节点的情况下,判断父节点与三维标签的节点标识相同,说明当前标签是三维标签的子标签。步骤304:从当前标签中提取出描述二维矢量图形属性的二维参数,从当前标签 的父标签中提取出描述三维空间平面属性的三维参数,进入步骤306 ;步骤305 :从当前标签中提取出描述二维矢量图形属性的二维参数,进入步骤307 ;对于当前标识是二维标签的情况,其提取二维参数的方法与从三维标签的子标签中提取二维参数的方法相同。而三维标签中的二维参数与二维标签中的二维参数不同的是,在三维标签的二维参数中增加了描述图形厚度属性的参数。步骤306 :将提取出的参数传递给图形绘制接口,以便所述图形绘制接口根据接收的参数,在三维参数描述的三维空间平面上绘制二维参数描述的二维矢量图形,并展示绘制得到的三维矢量图形,结束流程;步骤307 :将提取出的二维参数传递给图形绘制接口,以便所述图形绘制接口根据接收的二维参数绘制二维矢量图形,并展示绘制得到的二维矢量图形。步骤301、302、304、306的执行过程分别与实施例一中的步骤101、102、103和104的执行过程相同,具体方式可以参见实施例一中的描述,此处不再赘述。由上述实施例可以看出,在SVG文件中扩展三维标签,以及在三维标签的子标签中扩展描述图形厚度属性的参数,通过三维标签和三维标签的子标签中的参数,可以展示三维矢量图形。在展示二维矢量图形的同时,还通过二维标签中的参数,还可以同时展示二维矢量图形,进行实现在显示界面上同时展示三维矢量图形和二维矢量图形。实施例三下面以在终端上同时展示一个立方体的三维矢量图形和一个正方体的二维矢量图形为例,详细说明展示矢量图形的方法。请参阅图4,其为本发明中展示一个立方体的三维矢量图形和一个正方体的二维矢量图形的流程图,具体包括以下步骤步骤401 读取SVG文件;步骤402 :解析该SVG文件,得到该SVG文件中的3个标签;由于该SVG文件用于展不一个立方体三维矢量图形和一个正方体的二维矢量图形,因此,可以知道,通过解析该SVG文件,可以得到一个三维标签、一个三维标签的子标签和一个二维标签共3个标签。
其中,三维标签及其中的子标签的内容为〈view x=”10” y=”10” z=”10” width =,,500” height =,,500” angleX= ”90” angleY =,,120” ><rect x=〃 80" y=〃 60" width =" 250" height =" 250" fill="red" depth =”10”/>〈/view〉二维标签的内容为<rect χ = " 140 " y = " 120 " width = " 250 " height = " 250 " rx="40〃 fill = " blue" stroke = " black" stroke-width = " 2px〃 fill-opacity="0.7" />
步骤403 :逐一获取解析得到的标签,判断当前获取的标签是否是三维标签的子标签,如果是,进入步骤404,否则,进入步骤405 ;步骤404 :从当前标签中提取出立方体的二维参数,从当前标签的父标签中提取出立方体的三维参数,进入步骤406 ;针对上述步骤402中所示的三维标签及其中的子标签,可以从三维标签中提取三维参数x=”10” y=”10” z =”10” width = ” 500” height = ” 500” angleX = ” 90”angleY =” 120”,其中,x、y和z分别表示一个三维空间平面在三维空间中的X轴、Y轴和Z轴的起始位置为10、10和10,width和height分别表示该三维空间平面的宽为500,高为500,angleX和angleY分别表示该三维空间平面与X轴的夹角为90°,与Y轴的夹角为120。。从三维标签的子标签中提取出二维参数x = " 80" y = 〃 60" width="250 " height = " 250 " fill = " red " depth = ” 10”,其中,参数 x、y、width、height和full、为现有的SVG文件标签中的二维参数,分别表示一个正方体在二维空间中的X轴的起始位置为80、在Y轴的起始位置为60、正方体的宽为250、高为250和填充色为红色,depth为新增加的一个二维参数,表示该正方体在三维空间平面上所显示的厚度为10。步骤405 :从当前标签中提取出正方体的二维参数,进入步骤406 ;针对上述步骤402中所示的二维标签,可以从二维标签中提取二维参数x="140 " y = " 120 " width = " 250 " height = " 250 " rx = " 40 " fill="blue" stroke = " black" stroke-width = " 2px〃 fill-opacity = " 0. 7",上述参数都与现有的SVG文件标签中的二维参数相同。步骤406 :将提取的立方体的二维参数和三维参数,以及正方体的二维参数传递给图形绘制接口,图形绘制接口根据立方体的二维参数和三维参数,在三维参数描述的三维空间平面上绘制二维参数描述的正方体,得到一个立方体,根据正方体的二维参数绘制所描述的正方体,展示绘制得到的立方体和正方体。由上述实施例可以看出,在SVG文件中扩展三维标签,以及在三维标签的子标签中扩展描述图形厚度属性的参数,通过三维标签和三维标签的子标签中的参数,可以展示
三维矢量图形。在展示二维矢量图形的同时,还通过二维标签中的参数,还可以同时展示二维矢量图形,进行实现在显示界面上同时展示三维矢量图形和二维矢量图形。
实施例四与上述一种展示矢量图形的方法相对应,本发明实施例还提供一种展示矢量图形的终端。请参阅图5,其为本发明一种展示矢量图形的终端的一个实施例的结构图,该终端包括读取单元501、解析单元502、参数提取单元503和三维展示单元504。下面结合该基站控制器的工作原理进一步介绍其内部结构以及连接关系。读取单元501,用于读取扩缩放矢量图形SVG文件;解析单元502,用于解析所述SVG文件,得到展示三维矢量图形的三维标签和所述三维标签的子标签;参数提取单元503,用于从所述三维标签中提取出描述三维空间平面属性的三维参数,从所述三维标签的子标签中提取出描述二维矢量图形属性的二维参数,其中,在所述二维参数中增加了描述图形厚度属性的参数,所述三维参数包括三维空间平面在三维空间 中的起始位置、三维空间平面的大小和三维空间平面分别与X轴和Y轴的夹角;三维展示单元504,用于将提取出的参数传递给图形绘制接口,以便所述图形绘制接口根据接收的参数,在三维参数描述的三维空间平面上绘制二维参数描述的二维矢量图形,并展示绘制得到的三维矢量图形。优选的,除了图5所示的一种终端结构外,请参阅图6,其为本发明一种展示矢量图形的终端的另一个实施例的结构图,该终端除了包括读取单元501、解析单元502、参数提取单元503和三维展示单元504之外,还包括二维展示单元505,二维展示单元505,用于当解析所述SVG文件,同时得到展示二维矢量图形的二维标签,以及展示三维矢量图形的三维标签和所述三维标签的子标签后,判断当前标签是否是三维标签的子标签,如果否,从当前标签中提取出描述二维矢量图形属性的二维参数,将提取出的二维参数传递给图形绘制接口,以便所述图形绘制接口根据接收的二维参数绘制二维矢量图形,并展示绘制得到的二维矢量图形;如果是,则参数提取单元503,用于从当前标签中提取出描述二维矢量图形属性的二维参数,从当前标签的父标签中提取出描述三维空间平面属性的三维参数。优选的,在图6所示的终端中,二维展示单元505包括查找子单元5051和第一识别子单元5052,如图7所示,其为本发明中二维展示单元的一个结构示意图,其中,查找子单元5051,用于将所述当前标签作为当前节点,根据当前节点的节点标识查找所述当前节点的父节点;第一识别子单元5052,用于如果所述父节点与三维标签的节点标识相同,所述当前标签是三维标签的子标签。可替换的,除了图7所示的结构外,二维展示505包括第二识别子单元,用于将所述当前标签作为当前节点,如果当前节点有父节点,所述当前标签是三维标签的子标签。优选的,图形绘制接口包括OpenGL、DirectX或SKIA。由上述实施例可以看出,在SVG文件中扩展三维标签,以及在三维标签的子标签中扩展描述图形厚度属性的参数,通过三维标签和三维标签的子标签中的参数,可以展示
三维矢量图形。在展示二维矢量图形的同时,还通过二维标签中的参数,还可以同时展示二维矢量图形,进行实现在显示界面上同时展示三维矢量图形和二维矢量图形。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。以上对本发明所提供的一种展示矢量图形的方法和终端进行了详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种展示矢量图形的方法,其特征在于,包括 读取扩缩放矢量图形SVG文件; 解析所述SVG文件,得到展示三维矢量图形的三维标签和所述三维标签的子标签; 从所述三维标签中提取出描述三维空间平面属性的三维参数,从所述三维标签的子标签中提取出描述二维矢量图形属性的二维参数,其中,在所述二维参数中增加了描述图形厚度属性的参数,所述三维参数包括三维空间平面在三维空间中的起始位置、三维空间平面的大小和三维空间平面分别与X轴和Y轴的夹角; 将提取出的参数传递给图形绘制接口,以便所述图形绘制接口根据接收的参数,在三维参数描述的三维空间平面上绘制二维参数描述的二维矢量图形,并展示绘制得到的三维矢量图形。
2.根据权利要求I所述的方法,其特征在于,所述方法还包括 当解析所述SVG文件,同时得到展示二维矢量图形的二维标签,以及展示三维矢量图形的三维标签和所述三维标签的子标签后,判断当前标签是否是三维标签的子标签,如果否,从当前标签中提取出描述二维矢量图形属性的二维参数,将提取出的二维参数传递给图形绘制接口,以便所述图形绘制接口根据接收的二维参数绘制二维矢量图形,并展示绘制得到的二维矢量图形; 如果是,则所述从所述三维标签中提取出描述三维空间平面属性的三维参数,从所述三维标签的子标签中提取出描述二维矢量图形属性的二维参数为从当前标签中提取出描述二维矢量图形属性的二维参数,从当前标签的父标签中提取出描述三维空间平面属性的三维参数。
3.根据权利要求2所述的方法,其特征在于,所述判断当前标签是否是三维标签的子标签具体为 将所述当前标签作为当前节点,根据当前节点的节点标识查找所述当前节点的父节点. 如果所述父节点与三维标签的节点标识相同,所述当前标签是三维标签的子标签。
4.根据权利要求2所述的方法,其特征在于,所述判断当前标签是否是三维标签的子标签具体为 将所述当前标签作为当前节点,如果当前节点有父节点,所述当前标签是三维标签的子标签。
5.根据权利要求1-4中任意一项所述的方法,其特征在于,所述图形绘制接口包括OpenGL、DirectX 或 SKIA。
6.一种展示矢量图形的终端,其特征在于,包括 读取单元,用于读取扩缩放矢量图形SVG文件; 解析单元,用于解析所述SVG文件,得到展示三维矢量图形的三维标签和所述三维标签的子标签; 参数提取单元,用于从所述三维标签中提取出描述三维空间平面属性的三维参数,从所述三维标签的子标签中提取出描述二维矢量图形属性的二维参数,其中,在所述二维参数中增加了描述图形厚度属性的参数,所述三维参数包括三维空间平面在三维空间中的起始位置、三维空间平面的大小和三维空间平面分别与X轴和Y轴的夹角;三维展示单元,用于将提取出的参数传递给图形绘制接口,以便所述图形绘制接口根据接收的参数,在三维参数描述的三维空间平面上绘制二维参数描述的二维矢量图形,并展示绘制得到的三维矢量图形。
7.根据权利要求6所述的终端,其特征在于,所述终端还包括 二维展示单元,用于当解析所述SVG文件,同时得到展示二维矢量图形的二维标签,以及展示三维矢量图形的三维标签和所述三维标签的子标签后,判断当前标签是否是三维标签的子标签,如果否,从当前标签中提取出描述二维矢量图形属性的二维参数,将提取出的二维参数传递给图形绘制接口,以便所述图形绘制接口根据接收的二维参数绘制二维矢量图形,并展示绘制得到的二维矢量图形; 如果是,则所述参数提取单元,用于从当前标签中提取出描述二维矢量图形属性的二维参数,从当前标签的父标签中提取出描述三维空间平面属性的三维参数。
8.根据权利要求7所述的终端,其特征在于,所述二维展示单元包括 查找子单元,用于将所述当前标签作为当前节点,根据当前节点的节点标识查找所述当前节点的父节点; 第一识别子单元,用于如果所述父节点与三维标签的节点标识相同,所述当前标签是三维标签的子标签。
9.根据权利要求7所述的终端,其特征在于,所述二维展示单元包括 第二识别子单元,用于将所述当前标签作为当前节点,如果当前节点有父节点,所述当前标签是三维标签的子标签。
10.根据权利要求6-9中任意一项所述的终端,其特征在于,所述图形绘制接口包括OpenGL、DirectX 或 SKIA。
全文摘要
本发明实施例公开了一种展示矢量图形的方法和终端。其中的方法包括读取SVG文件;解析SVG文件,得到展示三维矢量图形的三维标签和三维标签的子标签;从三维标签中提取出描述三维空间平面属性的三维参数,从子标签中提取出描述二维矢量图形属性的二维参数,其中,在二维参数中增加了描述图形厚度属性的参数,三维参数包括三维空间平面在三维空间中的起始位置、三维空间平面的大小和三维空间平面分别与X轴和Y轴的夹角;将提取出的参数传递给图形绘制接口,以便图形绘制接口根据接收的参数,在三维参数描述的三维空间平面上绘制二维参数描述的二维矢量图形,并展示绘制得到的三维矢量图形。根据本发明实施例,可以支持展示三维矢量图形。
文档编号G06T17/00GK102831635SQ20111015768
公开日2012年12月19日 申请日期2011年6月13日 优先权日2011年6月13日
发明者王菲, 郑昕 申请人:华为软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1