一种二维场景海量矢量数据显示方法及设备技术

技术编号:35523343 阅读:23 留言:0更新日期:2022-11-09 14:43
本发明专利技术公开了一种二维场景海量矢量数据显示方法及设备,使运行在嵌入式设备中的二维图形化系统流畅显示包含海量矢量数据的矢量文件,支持放大、缩小和平移操作。本发明专利技术所提供的方法通过建立场景坐标系,建立背景图像缓冲对象,获取矢量文件的像素尺寸,设定场景坐标系的缩放系数和与显示设备中心始终对应的显示中心原点坐标,启动线程执行有效背景裁剪算法,精确计算有效背景图像场景矩形范围,在线程中执行有效背景裁剪算法,不阻塞当前系统中的消息响应,给用户使用流畅的感官体验。给用户使用流畅的感官体验。给用户使用流畅的感官体验。

【技术实现步骤摘要】
一种二维场景海量矢量数据显示方法及设备


[0001]本专利技术涉及数据处理
,尤其涉及一种二维场景海量矢量数据显示方法及设备。

技术介绍

[0002]矢量数据具备放大显示不失真的特性,建筑行业的图纸大都以矢量文件的形式保存矢量数据,常见的矢量格式文件有dwg、wmf、svg等。而在工业控制产品中如果要开发带背景显示,同时支持放大、缩小、平移的二维图形化功能时、首选都是以矢量数据作为背景显示。
[0003]但是很多矢量文件包含的矢量数据都是数万、数十万的量级,即使在当今性能较为领先的Inter或AMD处理器中完成一次包含这样海量矢量数据的矢量文件解析到绘制都会需要0.5秒甚至多久的运行时间。因此,市场上需要以矢量数据作为二维背景显示,同时还要支持放大、缩小、平移的二维图形化的产品,在导入并显示这种包含海量矢量数据的矢量文件时大都会产生系统无响应的现象,在系统使用过程中进行放大、缩小、平移操作时也会出现系统卡顿现象。例如在消防应急照明和疏散指示系统、火灾自动报警等系统中,主流厂家的图形化显示功能基本都以支持使用建筑物的工程矢量文件为背景为基本功能,但是在将包含海量矢量数据的矢量文件作为背景进行显示以及进行放大、缩小、平移操作时,大都会出现系统卡顿的现象。
[0004]因此,急需提供一种方法,能够使运行在嵌入式设备中的二维图形化系统流畅显示包含海量矢量数据的矢量文件,支持放大、缩小和平移操作。并且使用嵌入式系统运行具有显示海量矢量数据的二维图形化系统是一个能够有效降低产品成本、提升产品市场竞争力的选择

技术实现思路

[0005]本专利技术公开了一种二维场景海量矢量数据显示方法及设备,其目的在于能够使运行在嵌入式设备中的二维图形化系统流畅显示包含海量矢量数据的矢量文件,支持放大、缩小和平移操作。
[0006]为实现上述目的,本专利技术拟采用以下技术方案:
[0007]本专利技术所提供的一种二维场景海量矢量数据显示方法,其特征在于,包括以下步骤:
[0008]步骤S1:初始化图像绘制函数;
[0009]步骤S2:建立场景坐标系;
[0010]步骤S3:建立一个背景图像缓冲对象,并提供绘图函数;
[0011]步骤S4:获取矢量文件的像素尺寸;
[0012]步骤S5:设定场景坐标系的缩放系数和与显示设备中心始终对应的显示中心原点坐标;
[0013]步骤S6:启动一个线程执行有效背景裁剪算法,
[0014]其特征在于,所述步骤S6包括以下步骤:
[0015]步骤S61:计算背景图像在当前场景坐标系下的矩形范围;
[0016]步骤S62:计算显示设备的显示缓冲区场景矩形范围;
[0017]步骤S63:计算函数得到背景图像场景矩形范围与缓冲区场景矩形范围相交的场景矩形范围,得到的结果就是最终需要用于缓冲显示的有效背景图像场景矩形范围;
[0018]步骤S64:从完整背景图像中按照有效背景图像场景矩形范围裁剪出背景图像数据,用背景图像数据、有效背景图像场景矩形范围对背景图像缓冲对象进行设置。
[0019]进一步地,所述一种二维场景海量矢量数据显示方法还包括:
[0020]步骤S7:执行界面刷新功能;
[0021]步骤S8:判断用户选择的功能:当用户选择放大功能时,进入步骤S9;当用户选择缩小功能时,进入步骤S10;当用户选择平移功能时,进入步骤S11;
[0022]步骤S9:放大场景坐标系的缩放系数;
[0023]步骤S10:缩小场景坐标系的缩放系数;
[0024]步骤S11:设定新的场景坐标显示中心位置:根据用户平移操作得到的平移向量对场景坐标系的原点坐标进行变换,设定新的场景坐标显示中心位置。
[0025]进一步地,所述步骤S2建立场景坐标系还包括:计算场景坐标以及场景矩形范围;构造场景坐标系和显示设备显示坐标系进行相互转换的转换函数。
[0026]进一步地,所述场景坐标以及场景矩形范围具体为:所述场景坐标以及场景矩形范围具体为:具体场景坐标ScenePoint坐标为:{Float x—场景坐标X轴分量值;Float y—场景坐标Y轴分量值};具体场景矩形范围SceneRect坐标为:{ScenePoint left_bottom_pos—矩形左下角的坐标位置;Float width—矩形的宽度;Float height—矩形的高度}。
[0027]进一步地,所述场景坐标系和显示设备显示坐标系进行相互转换的转换函数包括:显示设备像素坐标转为场景坐标系坐标的转换函数Map Point From View port To Scene(缩放系数,显示设备像素坐标):场景坐标系坐标X=(显示中心原点坐标.X+map Distance From View port To Scene(显示设备像素坐标X

显示设备像素坐标宽度/2));场景坐标系坐标Y=(显示中心原点坐标.Y+map Distance From View port To Scene(显示设备像素坐标Y

显示设备像素坐标高度/2));场景坐标系坐标转为设备坐标系坐标的转换函数Map Point From Scene To View port(缩放系数,场景坐标系坐标):显示设备像素坐标X=显示设备像素坐标宽度/2+map Distance From Scene To View port(场景坐标系坐标X

场景坐标系显示原点坐标X);显示设备像素坐标Y=显示设备像素坐标高度/2+map Distance From Scene To View port(场景坐标系坐标Y

场景坐标系显示原点坐标Y)。
[0028]进一步地,所述步骤S9具体为:放大场景坐标系的缩放系数,其中,对场景坐标系的缩放系数进行放大的公式:缩放系数=缩放系数+0.05。
[0029]进一步地,所述步骤S10具体为:缩小场景坐标系的缩放系数,其中,对场景坐标系的缩放系数进行缩小的公式:缩放系数=缩放系数

0.05。
[0030]进一步地,所述步骤S11具体为:根据用户平移操作得到的平移向量以及场景坐标系显示原点位置坐标的公式对场景坐标系的原点坐标进行变换,设定新的场景坐标显示中心位置,其中,计算场景坐标系显示原点位置的公式:场景坐标系显示原点坐标=场景坐标
系显示原点坐标+map Point From View port To Scene(平移向量)。
[0031]进一步地,在执行完步骤S9或步骤S10或步骤S11后,都要在继续执行步骤S7,对用户的操作进行及时响应,在二维场景海量矢量数据显示设备上显示背景图像缓冲区已有的背景图像经过相应操作后的图像;然后执行步骤S6,更新背景图像缓冲对象的图像数据、图像所在的场景坐标、图像物理尺寸。
[0032]本专利技术还提供了一种二维场景海量矢量数据显示设备,其特征在于,包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
View port(缩放系数,场景坐标系坐标):显示设备像素坐标X=显示设备像素坐标宽度/2+map Distance From Scene To View port(场景坐标系坐标X

场景坐标系显示原点坐标X);显示设备像素坐标Y=显示设备像素坐标高度/2+map Distance From Scene To View port(场景坐标系坐标Y

场景坐标系显示原点坐标Y)。6.根据权利要求2所述一种二维场景海量矢量数据显示方法,其特征在于:所述步骤S9具体为:放大场景坐标系的缩放系数,其中,对场景坐标系的缩放系数进行放大的公式:缩放系数=缩放系数+0.05。7.根据权利要求6所述一种二维场景海量矢量数据显示方法,其特征在于:所述步骤S10具体为:缩小场景坐标系的缩放系数,其中,对场景坐标系的缩放系数进行缩小的公式:缩放系数=缩放系数

0.05。8.根据权利要求7所述一种二维场景海量矢量数据显示方法,其特征在于:所述步骤S11具体为:根据用户平移操作得到的平移向量以及场景坐...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:盈帜科技常州有限公司
类型:发明
国别省市:

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

1