openFL绘制矢量图形的处理方法、装置及电子设备制造方法及图纸

技术编号:24461050 阅读:31 留言:0更新日期:2020-06-10 17:01
本发明专利技术提供了一种openFL绘制矢量图形的处理方法、装置及电子设备,涉及计算机技术领域,该方法包括当检测到用户触发的绘制命令时,通过openFL解析绘制命令获取矢量图的图形信息;矢量图的图形信息包括构成矢量图的路径点;基于矢量图的路径点,通过openFL将矢量图进行三角化,得到矢量图的多个三角面;通过预设的开放图形库对矢量图的多个三角面进行渲染。本发明专利技术通过openFL代替flash进行绘制矢量图形的处理,有效提高了openFL在绘制矢量图形时的处理效率,同时减少了内存消耗。

Processing method, device and electronic equipment of openfl drawing vector graphics

【技术实现步骤摘要】
openFL绘制矢量图形的处理方法、装置及电子设备
本专利技术涉及计算机
,尤其是涉及一种openFL绘制矢量图形的处理方法、装置及电子设备。
技术介绍
在定制家居软件时,用户界面UI会用到圆角按钮和SVG控件,在家居软件的铺砖业务功能时用到的异型砖块和水刀切割图形砖块,这些复杂的2D绘制功能都依赖于flash矢量图形绘制接口。但是如果要在web上面脱离flash,改成html5或者WebAssembly,并且把平台扩充到桌面跨平台,需要通过openFL进行替代。但现有openFL使用的cario库渲染是通过CPU算法写入位图像素实现的,但用户来回缩放2D场景时需要重复申请新的位图并在新申请的位图上绘制图形,造成内存消耗较大的情况,另外,当位图很大或者绘制图形过多时,在进行绘制计算时会很耗时,从而在缩放操作时造成明显的卡顿。
技术实现思路
本专利技术的目的在于提供一种openFL绘制矢量图形的处理方法、装置及电子设备,以缓解了在运用openFL代替flash时,在绘制计算时耗时较大及内存占用较多的技术问题。第一方面,实施例提供一种openFL绘制矢量图形的处理方法,方法包括:当检测到用户触发的绘制命令时,通过openFL解析绘制命令获取矢量图的图形信息;矢量图的图形信息包括构成矢量图的路径点;基于矢量图的路径点,通过openFL将矢量图进行三角化,得到矢量图的多个三角面;通过预设的开放图形库对矢量图的多个三角面进行渲染。在可选的实施方式中,矢量图形存放于预设的开放图形库的Graphics类中;当检测到用户触发的绘制命令时,通过openFL解析绘制命令获取矢量图的图形信息的步骤,包括:当检测到用户触发的绘制命令时,通过openFL解析绘制命令,从而获取预设的开放图形库的Graphics类中的矢量图形信息。在可选的实施方式中,矢量图包括曲线图形;方法还包括:基于三次贝塞尔曲线方程将曲线图形进行分割得到多段直线,以使openFL基于每段直线的端点对矢量图进行三角化。在可选的实施方式中,矢量图包括凸多边形、凹多边形或自交多边形;基于矢量图的路径点,通过openFL将矢量图进行三角化,得到矢量图的多个三角面的步骤,包括:如果矢量图为凸多边形,基于凸多边形的路径点,通过openFL得到多个三角面;如果矢量图为凹多边形,基于耳切法进行三角化,通过openFL得到多个三角面;如果矢量图为自交多边形,按照奇偶规则或非零缠绕规则进行三角化,通过openFL得到多个三角面。在可选的实施方式中,矢量图的图形信息还包括用户设置的矢量图的填充颜色;通过预设的开放图形库对矢量图的多个三角面进行渲染的步骤,包括:计算矢量图的每个三角面的顶点的UV坐标;判断用户是否触发变换指令,如果是,基于UV坐标和预设的变换矩阵按照预设的变换方式进行变换,得到变换后的三角面,并通过预设的开放图形库对变换后的三角面按照用户设置的矢量图的填充颜色进行渲染。在可选的实施方式中,矢量图的图形信息还包括用户设置的矢量图中线条的线条宽度;方法还包括:基于矢量图中线条的第一端点及用户设置的矢量图中线条的线条宽度确定矢量图中线条的垂直向量,并基于路径点、垂直向量进行线条的绘制;线条绘制包括闭合曲线的线条绘制和非闭合曲线的线条绘制。在可选的实施方式中,方法还包括:对矢量图进行缩放;对矢量图进行缩放的步骤,包括:确定缩放模式的类型;缩放模式的类型包括普通模式和线条不缩放模式;判断缩放模式是否为线条不缩放模式;如果是,在进行缩放操作时将线条宽度进行反向缩放。在可选的实施方式中,方法还包括:在用户绘制前进行模板测试,如果当前模板值等于预先记录的模板值,则开始绘制;其中,预先记录的模板值包括将用户绘制的当前图形作为蒙版时记录的模板值。第二方面,实施例提供一种openFL绘制矢量图形的处理装置,装置包括:解析模块,用于当检测到用户触发的绘制命令时,通过openFL解析绘制命令获取矢量图的图形信息;矢量图的图形信息包括构成矢量图的路径点;三角化处理模块,用于基于矢量图的路径点,通过openFL将矢量图进行三角化,得到矢量图的多个三角面;渲染模块,用于通过预设的开放图形库对矢量图的多个三角面进行渲染。第三方面,实施例提供一种电子设备,包括处理器和存储器;存储器上存储有计算机程序,计算机程序在被处理器运行时执行如前述实施方式任一项的方法。第四方面,实施例提供一种计算机可读存储介质,用于储存为前述实施方式任一项方法所用的计算机软件指令。本专利技术提供的openFL绘制矢量图形的处理方法、装置及电子设备,当检测到用户触发的绘制命令时,通过openFL解析绘制命令获取矢量图的图形信息(包括构成矢量图的路径点),基于矢量图的路径点,通过openFL将矢量图进行三角化,得到矢量图的多个三角面,从而通过预设的开放图形库对矢量图的多个三角面进行渲染。通过基于矢量图形的路径点进行三角化得到多个三角面,在进行处理用户绘制的图形时,基于三角面的顶点对图形进行绘制和渲染等操作,无需在每次处理时都申请一个新的位图进行绘制,提高了绘制的效率,同时减少了内存的消耗。本专利技术实施例有效提高了openFL在绘制矢量图形时的处理效率,同时减少了内存消耗。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种openFL绘制矢量图形的处理方法的流程示意图;图2为本专利技术实施例提供的另一种openFL绘制矢量图形的处理方法的流程示意图;图3为本专利技术实施例提供的一种openFL绘制矢量图形的处理装置的结构示意图;图4为本专利技术实施例提供的一种电子设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。下面结合附图,对本专利技术的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。openFL是用Haxe编程语言实现的FlashAPI,考虑到openFL中用户来回缩放2D场景时需要重复申请新的位图并在新申请的位图上绘制图形,造成内存消耗较大的情况,另外,当位图很大或者绘制图形过多时,在进行绘制计算时会很耗时,从而在缩放操作时造成本文档来自技高网...

【技术保护点】
1.一种openFL绘制矢量图形的处理方法,其特征在于,所述方法包括:/n当检测到用户触发的绘制命令时,通过所述openFL解析所述绘制命令获取矢量图的图形信息;所述矢量图的图形信息包括构成所述矢量图的路径点;/n基于所述矢量图的路径点,通过所述openFL将所述矢量图进行三角化,得到所述矢量图的多个三角面;/n通过预设的开放图形库对所述矢量图的多个三角面进行渲染。/n

【技术特征摘要】
1.一种openFL绘制矢量图形的处理方法,其特征在于,所述方法包括:
当检测到用户触发的绘制命令时,通过所述openFL解析所述绘制命令获取矢量图的图形信息;所述矢量图的图形信息包括构成所述矢量图的路径点;
基于所述矢量图的路径点,通过所述openFL将所述矢量图进行三角化,得到所述矢量图的多个三角面;
通过预设的开放图形库对所述矢量图的多个三角面进行渲染。


2.根据权利要求1所述的方法,其特征在于,所述矢量图的图形信息存放于所述预设的开放图形库的Graphics类中;所述当检测到用户触发的绘制命令时,通过所述openFL解析所述绘制命令获取矢量图的图形信息的步骤,包括:
当检测到用户触发的绘制命令时,通过所述openFL解析所述绘制命令,从而获取所述预设的开放图形库的Graphics类中的所述矢量图的图形信息。


3.根据权利要求1所述的方法,其特征在于,所述矢量图包括曲线图形;所述方法还包括:
基于三次贝塞尔曲线方程将所述曲线图形进行分割得到多段直线,以使所述openFL基于每段所述直线的端点对所述矢量图进行三角化。


4.根据权利要求1所述的方法,其特征在于,所述矢量图包括凸多边形、凹多边形或自交多边形;所述基于所述矢量图的路径点,通过所述openFL将所述矢量图进行三角化,得到所述矢量图的多个三角面的步骤,包括:
如果所述矢量图为所述凸多边形,基于所述凸多边形的路径点,通过所述openFL得到多个所述三角面;
如果所述矢量图为所述凹多边形,基于耳切法进行三角化,通过所述openFL得到多个所述三角面;
如果所述矢量图为所述自交多边形,按照奇偶规则或非零缠绕规则进行三角化,通过所述openFL得到多个所述三角面。


5.根据权利要求1所述的方法,其特征在于,所述矢量图的图形信息还包括用户设置的所述矢量图的填充颜色;所述通过预设的开放图形库对所述矢量图的多个三角面进行渲染的步骤,包括:
计算所述矢量图的每个所述三角面的顶...

【专利技术属性】
技术研发人员:陈勇星邱辉平
申请(专利权)人:广东三维家信息科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1