CN115309313A - 一种二维场景海量矢量数据显示方法及设备 - Google Patents
一种二维场景海量矢量数据显示方法及设备 Download PDFInfo
- Publication number
- CN115309313A CN115309313A CN202210948835.4A CN202210948835A CN115309313A CN 115309313 A CN115309313 A CN 115309313A CN 202210948835 A CN202210948835 A CN 202210948835A CN 115309313 A CN115309313 A CN 115309313A
- Authority
- CN
- China
- Prior art keywords
- scene
- coordinate system
- coordinate
- display
- background image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000013598 vector Substances 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000006870 function Effects 0.000 claims description 54
- 238000013519 translation Methods 0.000 claims description 28
- 238000006243 chemical reaction Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 8
- 238000005520 cutting process Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 abstract description 2
- 230000001953 sensory effect Effects 0.000 abstract description 2
- 230000014616 translation Effects 0.000 description 22
- 238000004364 calculation method Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 7
- 238000006722 reduction reaction Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000003321 amplification Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04806—Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种二维场景海量矢量数据显示方法及设备,使运行在嵌入式设备中的二维图形化系统流畅显示包含海量矢量数据的矢量文件,支持放大、缩小和平移操作。本发明所提供的方法通过建立场景坐标系,建立背景图像缓冲对象,获取矢量文件的像素尺寸,设定场景坐标系的缩放系数和与显示设备中心始终对应的显示中心原点坐标,启动线程执行有效背景裁剪算法,精确计算有效背景图像场景矩形范围,在线程中执行有效背景裁剪算法,不阻塞当前系统中的消息响应,给用户使用流畅的感官体验。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种二维场景海量矢量数据显示方法及设备。
背景技术
矢量数据具备放大显示不失真的特性,建筑行业的图纸大都以矢量文件的形式保存矢量数据,常见的矢量格式文件有dwg、wmf、svg等。而在工业控制产品中如果要开发带背景显示,同时支持放大、缩小、平移的二维图形化功能时、首选都是以矢量数据作为背景显示。
但是很多矢量文件包含的矢量数据都是数万、数十万的量级,即使在当今性能较为领先的Inter或AMD处理器中完成一次包含这样海量矢量数据的矢量文件解析到绘制都会需要0.5秒甚至多久的运行时间。因此,市场上需要以矢量数据作为二维背景显示,同时还要支持放大、缩小、平移的二维图形化的产品,在导入并显示这种包含海量矢量数据的矢量文件时大都会产生系统无响应的现象,在系统使用过程中进行放大、缩小、平移操作时也会出现系统卡顿现象。例如在消防应急照明和疏散指示系统、火灾自动报警等系统中,主流厂家的图形化显示功能基本都以支持使用建筑物的工程矢量文件为背景为基本功能,但是在将包含海量矢量数据的矢量文件作为背景进行显示以及进行放大、缩小、平移操作时,大都会出现系统卡顿的现象。
因此,急需提供一种方法,能够使运行在嵌入式设备中的二维图形化系统流畅显示包含海量矢量数据的矢量文件,支持放大、缩小和平移操作。并且使用嵌入式系统运行具有显示海量矢量数据的二维图形化系统是一个能够有效降低产品成本、提升产品市场竞争力的选择。
发明内容
本发明公开了一种二维场景海量矢量数据显示方法及设备,其目的在于能够使运行在嵌入式设备中的二维图形化系统流畅显示包含海量矢量数据的矢量文件,支持放大、缩小和平移操作。
为实现上述目的,本发明拟采用以下技术方案:
本发明所提供的一种二维场景海量矢量数据显示方法,其特征在于,包括以下步骤:
步骤S1:初始化图像绘制函数;
步骤S2:建立场景坐标系;
步骤S3:建立一个背景图像缓冲对象,并提供绘图函数;
步骤S4:获取矢量文件的像素尺寸;
步骤S5:设定场景坐标系的缩放系数和与显示设备中心始终对应的显示中心原点坐标;
步骤S6:启动一个线程执行有效背景裁剪算法,
其特征在于,所述步骤S6包括以下步骤:
步骤S61:计算背景图像在当前场景坐标系下的矩形范围;
步骤S62:计算显示设备的显示缓冲区场景矩形范围;
步骤S63:计算函数得到背景图像场景矩形范围与缓冲区场景矩形范围相交的场景矩形范围,得到的结果就是最终需要用于缓冲显示的有效背景图像场景矩形范围;
步骤S64:从完整背景图像中按照有效背景图像场景矩形范围裁剪出背景图像数据,用背景图像数据、有效背景图像场景矩形范围对背景图像缓冲对象进行设置。
进一步地,所述一种二维场景海量矢量数据显示方法还包括:
步骤S7:执行界面刷新功能;
步骤S8:判断用户选择的功能:当用户选择放大功能时,进入步骤S9;当用户选择缩小功能时,进入步骤S10;当用户选择平移功能时,进入步骤S11;
步骤S9:放大场景坐标系的缩放系数;
步骤S10:缩小场景坐标系的缩放系数;
步骤S11:设定新的场景坐标显示中心位置:根据用户平移操作得到的平移向量对场景坐标系的原点坐标进行变换,设定新的场景坐标显示中心位置。
进一步地,所述步骤S2建立场景坐标系还包括:计算场景坐标以及场景矩形范围;构造场景坐标系和显示设备显示坐标系进行相互转换的转换函数。
进一步地,所述场景坐标以及场景矩形范围具体为:所述场景坐标以及场景矩形范围具体为:具体场景坐标ScenePoint坐标为:{Float x—场景坐标X轴分量值;Float y—场景坐标Y轴分量值};具体场景矩形范围SceneRect坐标为:{ScenePoint left_bottom_pos—矩形左下角的坐标位置;Float width—矩形的宽度;Float height—矩形的高度}。
进一步地,所述场景坐标系和显示设备显示坐标系进行相互转换的转换函数包括:显示设备像素坐标转为场景坐标系坐标的转换函数Map Point From View port ToScene(缩放系数,显示设备像素坐标):场景坐标系坐标X=(显示中心原点坐标.X+mapDistance 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+mapDistance From Scene To View port(场景坐标系坐标Y-场景坐标系显示原点坐标Y)。
进一步地,所述步骤S9具体为:放大场景坐标系的缩放系数,其中,对场景坐标系的缩放系数进行放大的公式:缩放系数=缩放系数+0.05。
进一步地,所述步骤S10具体为:缩小场景坐标系的缩放系数,其中,对场景坐标系的缩放系数进行缩小的公式:缩放系数=缩放系数-0.05。
进一步地,所述步骤S11具体为:根据用户平移操作得到的平移向量以及场景坐标系显示原点位置坐标的公式对场景坐标系的原点坐标进行变换,设定新的场景坐标显示中心位置,其中,计算场景坐标系显示原点位置的公式:场景坐标系显示原点坐标=场景坐标系显示原点坐标+map Point From View port To Scene(平移向量)。
进一步地,在执行完步骤S9或步骤S10或步骤S11后,都要在继续执行步骤S7,对用户的操作进行及时响应,在二维场景海量矢量数据显示设备上显示背景图像缓冲区已有的背景图像经过相应操作后的图像;然后执行步骤S6,更新背景图像缓冲对象的图像数据、图像所在的场景坐标、图像物理尺寸。
本发明还提供了一种二维场景海量矢量数据显示设备,其特征在于,包括:处理器、网络接口、用户接口以及存储器;所述用户接口包括显示屏(Display),所述处理器与所述存储器、所述网络接口相连,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中存储的数据处理应用程序。
与现有技术相比,本发明的有益技术效果在于:
易于编码实现,完全基于基本的坐标系、向量的数学原理和运算规则;使用本发明实现的图形化产品,在使用平移、放大、缩小功能时不产生任何卡顿现象,能够有效提升产品的用户体验,在与同类产品相比具备肉眼可以分辨的显示性能优势;本发明具备平台无关性,在嵌入式、Windows、Linux、Mac平台上都可以实现高性能的二维图形化系统,能够使产品具备多平台协同的特性,例如在Windows平台上实现产品的图形化设计系统,在嵌入式设备上实现图形化监控系统,最后通过移动存储设备或网络将系统的图形化数据进行传递,有效降低产品的研发成本;对CPU的处理能力和内存存储容量要求低,在嵌入式设备上基于本发明实现图形化产品,能有效降低产品的制造成本。
附图说明
图1为本发明的一种二维场景海量矢量数据显示设备结构示意图;
图2为本发明的一种二维场景海量矢量数据显示方法流程图;
图3为本发明步骤S6具体步骤流程图;
图4为本发明实例建立的笛卡尔场景坐标系;
图5为本发明实例放大操作后计算得到的有效背景图像场景矩形范围;
图6为本发明实例缩小操作后计算得到的有效背景图像场景矩形范围;
图7为本发明实例向左上方平移操作后计算得到的显示缓冲区矩形范围,场景坐标系原点与显示原点的平移向量代表了平移的方向和距离。
图中:11-二维场景海量矢量数据显示设备;12-处理器;13-网络接口;14-用户接口;15-存储器;16-通信总线;20-场景坐标系,21-显示设备的屏幕中心;61-完整背景图像输出场景矩形范围;62-显示缓冲区场景矩形范围;63-有效背景图像场景矩形范围。
具体实施方式
下面结合附图和实施例对本发明做进一步描述,以帮助本领域内相关技术人员对本发明的策略设计及装置有更加准确、直观、深入的理解。
本实例提供了一种二维场景海量矢量数据显示方法,能够使运行在嵌入式设备中的二维图形化系统流畅显示包含海量矢量数据的矢量文件,支持放大、缩小和平移操作。本发明具备平台无关性,在嵌入式、Windows、Linux、Mac平台上都可以实现高性能的二维图形化系统。
如图1所述数据处理应用程序实现了如图2所示的海量矢量数据显示方法。其中,图1是本实施例提供的一种二维场景海量矢量数据显示设备结构示意图。如图1所示,所述二维场景海量矢量数据显示设备11可以包括:至少一个处理器12,例如CPU,至少一个网络接口13,用户接口14,存储器15,至少一个通信总线16。其中,通信总线16用于实现这些组件之间的连接通信。其中,用户接口14可以包括显示屏(Display),可选用户接口14还可以包括标准的有线接口、无线接口。网络接口13可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器15可以是随机存取存储器(Random Access Memory,RAM),也可以是非易失性存储器(non-volatile memory,NVM),例如至少一个磁盘存储器。如图1所示,作为一种二维场景海量矢量数据的存储器15中可以包括操作系统、网络通信模块、用户接口模块以及数据处理应用程序。
在图1所示的二维场景海量矢量数据显示设备11中,网络接口13可提供网络通讯功能,用户接口14主要用于为用户提供输入的接口;而处理器12可以用于调用存储器15中存储的数据处理应用程序,以实现如图2所对应实施例中对所述二维场景海量矢量数据进行放大、缩小、平移的描述,在此不再赘述。
请再参考图2,本实例提供了一种二维场景海量矢量数据显示方法,具体包括以下步骤:
步骤S1:初始化图像绘制函数,如果使用图形加速硬件进行绘图,则对图形加速硬件进行初始化,使当前界面线程能够通过图形硬件绘图函数完成显示设备的图像绘制。
步骤S2:建立场景坐标系20,计算场景坐标以及场景矩形范围,构造场景坐标系和显示设备显示坐标系进行相互转换的转换函数。
场景坐标系包含的属性有:物理单位、显示中心坐标。场景坐标系的单位可以使用毫米、厘米、分米、米、寸、英寸作为场景坐标的单位尺寸。所有需要显示的图形数据都需要通过坐标转换函数从像素尺寸转为场景坐标尺寸,以此确保在不同分辨率的二维场景海量矢量数据显示设备11上获得同样的显示尺寸和位置,请参考图1。其中,显示原点坐标与显示设备的屏幕中心像素坐标对应,例如,如图4所示屏幕中心21即为显示设备的屏幕中心像素坐标,默认的显示原点坐标为(0.0,0.0)。
所述计算场景坐标以及场景矩形范围具体为:
根据建立的场景坐标系计算场景坐标:场景坐标ScenePoint用来表示场景坐标中的一个点或者一个向量,其两个分量都由浮点数组成。具体场景坐标ScenePoint坐标为:{Float x—场景坐标X轴分量值;Float y—场景坐标Y轴分量值};
根据建立的场景坐标系计算场景矩形范围:场景矩形范围SceneRect用来描述场景坐标系中的一个长方形区域,由左下角、右上角两个对角点的场景坐标构建,所有坐标分量值都用浮点数存储。具体场景矩形范围SceneRect坐标为:{ScenePoint left_bottom_pos—矩形左下角的坐标位置;Float width—矩形的宽度;Float height—矩形的高度}。
上述场景矩形范围SceneRect表示了一个场景坐标系中的矩形范围,长度单位与场景坐标系保持一致,除了直接设置上面的分量值外,还需要提供一个构造函数,使能够通过两个对角的坐标位置进行初始化:{Float left_bottom_pos_x—矩形左下角的坐标X值;Float left_bottom_pos_y—矩形左下角的坐标Y值;Float right_top_pos_x—矩形右上角的坐标X值;Float right_top_pos_y—矩形右上角的坐标Y值}。
场景矩形范围SceneRect还需要提供两个重要计算函数:Bool SceneRect::surround(SceneRect other),用于计算一个场景矩形范围是否完全包含另一个场景矩形范围;SceneRect SceneRect::intersected(SceneRect other),用于计算一个场景矩形范围与另一个场景矩形范围相交的部分,返回值为相交部分的场景矩形范围;
所述构造场景坐标系和显示设备显示坐标系进行相互转换的转换函数具体为:
根据建立的场景坐标系构造显示设备上的像素距离与场景坐标系的距离转换的转换函数:显示设备上的像素距离转换为场景坐标系的距离转换函数Map Distance FromView port To Scene(缩放系数,显示设备像素距离):(显示设备像素距离/DPx)/缩放系数;场景坐标系的距离转换为显示设备上的像素距离转换函数Map Distance From SceneTo View port(缩放系数,场景坐标系距离):(场景坐标系距离*缩放系数*DPx);其中,DPx是根据场景坐标系的物理单位和显示设备水平分辨率、垂直分辨率计算得到的对角线解析度参数,其计算与物理单位相关,基于毫米的公式为:DPx=sqrt(显示设备水平方向像素数的平方+显示设备垂直方向像素数的平方)/sqrt(显示设备水平方向毫米长度的平方+显示设备垂直方向毫米长度的平方)。
根据建立的场景坐标系构造显示设备像素坐标与场景坐标系坐标转换的转换函数:显示设备像素坐标转为场景坐标系坐标的转换函数Map Point From View port ToScene(缩放系数,显示设备像素坐标):场景坐标系坐标X=(显示中心原点坐标.X+mapDistance 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+mapDistance From Scene To View port(场景坐标系坐标Y-场景坐标系显示原点坐标Y)。
默认显示原点坐标的计算公式为Map Point From View port To Scene((显示设备像素宽度/2,显示设备像素高度/2))。根据上述公式定义,可以得知默认显示原点坐标为(0.0,0.0)。
步骤S3:建立一个背景图像缓冲对象,并提供绘图函数。
建立一个背景图像缓冲对象,其保存了当前显示用的背景图像,图像所在的场景坐标,图像的物理尺寸大小。同时提供绘图函数,该绘图函数能够根据当前背景图像所在的场景坐标位置、物理尺寸、场景坐标系的缩放系数在显示设备上进行图像绘制。
步骤S4:获取矢量文件的像素尺寸(像素宽、像素高):通过场景坐标系提供的坐标转换函数计算出矢量文件在场景坐标系中的尺寸(物理尺寸单位),用所述矢量文件在场景坐标系中的尺寸对背景图像缓冲对象进行初始化。
步骤S5:设定场景坐标系的缩放系数和与显示设备中心始终对应的显示中心原点坐标:可以从配置参数中加载,也可以使用默认设置。默认设置缩放系数=1.0表示按照原始尺寸显示,缩放系数>1.0代表放大显示,缩放系数<1.0代表缩小显示;默认显示中心原点坐标为(0.0,0.0)。
步骤S6:启动一个线程执行有效背景裁剪算法;
步骤S7:执行界面刷新功能:按显示的先后顺序绘制图形界面中的内容,背景缓冲对象作为第一个绘制项,执行背景图像缓冲对象的绘图函数,用其当前的背景图像数据和有效背景图像场景矩形范围完成背景图像的绘制,显示设备上能看到的背景图像区域为:有效背景图像场景矩形范围.surround(显示设备场景矩形范围的)。
步骤S8:判断用户选择的功能:当用户选择放大功能时,进入步骤S9;当用户选择缩小功能时,进入步骤S10;当用户选择平移功能时,进入步骤S11;
步骤S9:放大场景坐标系的缩放系数。其中,对场景坐标系的缩放系数进行放大的公式:缩放系数=缩放系数+0.05。
步骤S10:缩小场景坐标系的缩放系数。缩小场景坐标系的缩放系数。其中,对场景坐标系的缩放系数进行缩小的公式:缩放系数=缩放系数-0.05。
步骤S11:设定新的场景坐标显示中心位置:根据用户平移操作得到的平移向量对场景坐标系的原点坐标进行变换,设定新的场景坐标显示中心位置。其中,计算场景坐标系显示原点位置的公式:场景坐标系显示原点坐标=场景坐标系显示原点坐标+map PointFrom View port To Scene(平移向量)。
进一步的,所述步骤S6具体为:启动一个线程执行有效背景裁剪算法,生成适合当前显示设备尺寸的最小背景图像数据,计算完成后更新背景图像缓冲对象的图像数据、图像所在的场景坐标、图像物理尺寸;如图3所示,上述有效背景裁剪算法具体包括以下步骤:
步骤S61:计算背景图像在当前场景坐标系下的矩形范围:完整背景图像输出像素尺寸=矢量文件原始像素尺寸*缩放系数;完整背景图像输出场景坐标宽度=mapDistance From View port To Scene(场景坐标系缩放系数,完整背景图像输出像素尺寸宽度);完整背景图像输出场景坐标高度=map Distance From View port To Scene(场景坐标系缩放系数,完整背景图像输出像素尺寸高度)。
进一步地,完整背景图像输出场景矩形范围=(0.0-背景图像输出场景坐标宽度/2.0,0.0-背景图像输出场景坐标高度/2.0,坐标背景图像输出场景坐标宽度,背景图像输出场景坐标高度),其中0.0-背景图像输出场景坐标宽度/2.0表示左下角X坐标,0.0-背景图像输出场景坐标高度/2.0表示下角Y坐标,背景图像输出场景坐标宽度表示右上角X坐标,背景图像输出场景坐标高度表示右上角Y坐标;
步骤S62:计算显示设备的显示缓冲区场景矩形范围:用户在进行放大操作、缩小操作、平移操作时,需要快速显示出原本不再显示区域内的背景图像,因此按照显示设备像素尺寸的2倍建立显示缓冲区场景矩形范围。显示缓冲区场景矩形范围坐标宽度=mapDistance From View port To Scene(场景坐标系缩放系数,显示设备像素宽度*2);显示缓冲区场景矩形范围坐标高度=map Distance From View port To Scene(场景坐标系缩放系数,显示设备像素高度*2)。
进一步地,显示缓冲区场景矩形范围=(显示中心原点坐标.X-显示缓冲区场景坐标宽度/2.0,显示中心原点坐标.Y-显示缓冲区场景坐标高度/2.0,显示缓冲区场景坐标宽度,显示缓冲区场景坐标高度)其中,显示中心原点坐标.X-显示缓冲区场景坐标宽度/2.0表示左下角X坐标,显示中心原点坐标.Y-显示缓冲区场景坐标高度/2.0表示左下角Y坐标,显示缓冲区场景坐标宽度表示右上角X坐标,显示缓冲区场景坐标高度表示右上角Y坐标;
步骤S63:计算函数得到背景图像场景矩形范围与缓冲区场景矩形范围相交的场景矩形范围,得到的结果就是最终需要用于缓冲显示的有效背景图像场景矩形范围。
进一步地,如果显示缓冲区场景矩形范围.surround(完整背景图像输出场景矩形范围)返回为真,有效背景图像场景矩形范围=完整背景图像输出场景矩形范围;如果完整背景图像输出场景矩形范围.surround(显示缓冲区场景矩形范围)返回为真,有效背景图像场景矩形范围=显示缓冲区场景矩形范围;否则有效背景图像场景矩形范围=完整背景图像输出场景矩形范围.intersected(显示缓冲区场景矩形范围);
步骤S64:从完整背景图像中按照有效背景图像场景矩形范围裁剪出背景图像数据,用背景图像数据、有效背景图像场景矩形范围对背景图像缓冲对象进行设置。
通过上述四个过程精确计算有效背景图像场景矩形范围,就能够在代码中只申请满足显示需求的内存空间来存放当前需要进行显示的背景图像区域,尤其是在需要放大显示的场景;在线程中执行有效背景裁剪算法,能够不阻塞当前系统中的消息响应,给用户使用流畅的感官体验。
进一步需要说明:
当用户进入步骤S9,使用步骤S9计算出放大系数,执行步骤S7,对用户的操作进行及时响应,在显示设备上显示背景图像缓冲区已有的背景图像经过放大后的图像;执行步骤S61,计算背景图像在当前场景坐标系下的矩形范围61;执行步骤S62,计算显示设备的显示缓冲区场景矩形范围62;然后执行步骤S63,计算函数得到背景图像场景矩形范围与缓冲区场景矩形范围相交的场景矩形范围,得到的结果就是最终需要用于缓冲显示的有效背景图像场景矩形范围63,放大操作后计算得到的有效背景图像场景矩形范围如图5所示。最后执行步骤S64,从完整背景图像中按照有效背景图像场景矩形范围裁剪出背景图像数据,用背景图像数据、有效背景图像场景矩形范围对背景图像缓冲对象进行设置。
当用户进入步骤S10,使用步骤S10计算出缩小系数,执行步骤S7,对用户的操作进行及时响应,在显示设备上显示背景图像缓冲区已有的背景图像经过缩小后的图像;执行步骤S61,计算背景图像在当前场景坐标系下的矩形范围61;执行步骤S62,计算显示设备的显示缓冲区场景矩形范围62;然后执行步骤S63,计算函数得到背景图像场景矩形范围与缓冲区场景矩形范围相交的场景矩形范围,得到的结果就是最终需要用于缓冲显示的有效背景图像场景矩形范围63,放大操作后计算得到的有效背景图像场景矩形范围如图6所示。最后执行步骤S64,从完整背景图像中按照有效背景图像场景矩形范围裁剪出背景图像数据,用背景图像数据、有效背景图像场景矩形范围对背景图像缓冲对象进行设置。
当用户进入步骤S11,使用步骤S11设定新的场景坐标显示中心位置,执行步骤S7,对用户的操作进行及时响应,在显示设备上显示背景图像缓冲区已有的背景图像;执行步骤S61,计算背景图像在当前场景坐标系下的矩形范围61;执行步骤S62,计算显示设备的显示缓冲区场景矩形范围62;然后执行步骤S63,计算函数得到背景图像场景矩形范围与缓冲区场景矩形范围相交的场景矩形范围,得到的结果就是最终需要用于缓冲显示的有效背景图像场景矩形范围63,平移操作后计算得到的有效背景图像场景矩形范围如图7所示。最后执行步骤S64,从完整背景图像中按照有效背景图像场景矩形范围裁剪出背景图像数据,用背景图像数据、有效背景图像场景矩形范围对背景图像缓冲对象进行设置。
综上所述,与现有技术相比,本发明的有益技术效果在于:
易于编码实现,完全基于基本的坐标系、向量的数学原理和运算规则;使用本发明实现的图形化产品,在使用平移、放大、缩小功能时不产生任何卡顿现象,能够有效提升产品的用户体验,在与同类产品相比具备肉眼可以分辨的显示性能优势;本发明具备平台无关性,在嵌入式、Windows、Linux、Mac平台上都可以实现高性能的二维图形化系统,能够使产品具备多平台协同的特性,例如在Windows平台上实现产品的图形化设计系统,在嵌入式设备上实现图形化监控系统,最后通过移动存储设备或网络将系统的图形化数据进行传递,有效降低产品的研发成本;对CPU的处理能力和内存存储容量要求低,在嵌入式设备上基于本发明实现图形化产品,能有效降低产品的制造成本。
Claims (10)
1.一种二维场景海量矢量数据显示方法,包括以下步骤:
步骤S1:初始化图像绘制函数;
步骤S2:建立场景坐标系;
步骤S3:建立一个背景图像缓冲对象,并提供绘图函数;
步骤S4:获取矢量文件的像素尺寸;
步骤S5:设定场景坐标系的缩放系数和与显示设备中心始终对应的显示中心原点坐标;
步骤S6:启动一个线程执行有效背景裁剪算法,
其特征在于,所述步骤S6包括以下步骤:
步骤S61:计算背景图像在当前场景坐标系下的矩形范围;
步骤S62:计算显示设备的显示缓冲区场景矩形范围;
步骤S63:计算函数得到背景图像场景矩形范围与缓冲区场景矩形范围相交的场景矩形范围,得到的结果就是最终需要用于缓冲显示的有效背景图像场景矩形范围;
步骤S64:从完整背景图像中按照有效背景图像场景矩形范围裁剪出背景图像数据,用背景图像数据、有效背景图像场景矩形范围对背景图像缓冲对象进行设置。
2.根据权利要求1所述一种二维场景海量矢量数据显示方法,其特征在于,所述一种二维场景海量矢量数据显示方法还包括:
步骤S7:执行界面刷新功能;
步骤S8:判断用户选择的功能:当用户选择放大功能时,进入步骤S9;当用户选择缩小功能时,进入步骤S10;当用户选择平移功能时,进入步骤S11;
步骤S9:放大场景坐标系的缩放系数;
步骤S10:缩小场景坐标系的缩放系数;
步骤S11:设定新的场景坐标显示中心位置:根据用户平移操作得到的平移向量对场景坐标系的原点坐标进行变换,设定新的场景坐标显示中心位置。
3.根据权利要求1所述一种二维场景海量矢量数据显示方法,其特征在于,所述步骤S2建立场景坐标系还包括:计算场景坐标以及场景矩形范围;构造场景坐标系和显示设备显示坐标系进行相互转换的转换函数。
4.根据权利要求3所述一种二维场景海量矢量数据显示方法,其特征在于:所述场景坐标以及场景矩形范围具体为:具体场景坐标ScenePoint坐标为:{Float x—场景坐标X轴分量值;Float y—场景坐标Y轴分量值};具体场景矩形范围SceneRect坐标为:{ScenePointleft_bottom_pos—矩形左下角的坐标位置;Float width—矩形的宽度;Float height—矩形的高度}。
5.根据权利要求3所述一种二维场景海量矢量数据显示方法,其特征在于:所述场景坐标系和显示设备显示坐标系进行相互转换的转换函数包括:显示设备像素坐标转为场景坐标系坐标的转换函数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 ToView port(缩放系数,场景坐标系坐标):显示设备像素坐标X=显示设备像素坐标宽度/2+map Distance From Scene To View port(场景坐标系坐标X-场景坐标系显示原点坐标X);显示设备像素坐标Y=显示设备像素坐标高度/2+map Distance From Scene To Viewport(场景坐标系坐标Y-场景坐标系显示原点坐标Y)。
6.根据权利要求2所述一种二维场景海量矢量数据显示方法,其特征在于:所述步骤S9具体为:放大场景坐标系的缩放系数,其中,对场景坐标系的缩放系数进行放大的公式:缩放系数=缩放系数+0.05。
7.根据权利要求6所述一种二维场景海量矢量数据显示方法,其特征在于:所述步骤S10具体为:缩小场景坐标系的缩放系数,其中,对场景坐标系的缩放系数进行缩小的公式:缩放系数=缩放系数-0.05。
8.根据权利要求7所述一种二维场景海量矢量数据显示方法,其特征在于:所述步骤S11具体为:根据用户平移操作得到的平移向量以及场景坐标系显示原点位置坐标的公式对场景坐标系的原点坐标进行变换,设定新的场景坐标显示中心位置,其中,计算场景坐标系显示原点位置的公式:场景坐标系显示原点坐标=场景坐标系显示原点坐标+map PointFrom View port To Scene(平移向量)。
9.根据权利要求6-8任意一项所述一种二维场景海量矢量数据显示方法,其特征在于:在执行完步骤S9或步骤S10或步骤S11后,都要在继续执行步骤S7,对用户的操作进行及时响应,在二维场景海量矢量数据显示设备上显示背景图像缓冲区已有的背景图像经过相应操作后的图像;然后执行步骤S6,更新背景图像缓冲对象的图像数据、图像所在的场景坐标、图像物理尺寸。
10.一种二维场景海量矢量数据显示设备,其特征在于,包括:处理器、网络接口、用户接口以及存储器;所述用户接口包括显示屏(Display),所述处理器与所述存储器、所述网络接口相连,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中存储的数据处理应用程序,以执行权利要求1-9任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210948835.4A CN115309313A (zh) | 2022-08-09 | 2022-08-09 | 一种二维场景海量矢量数据显示方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210948835.4A CN115309313A (zh) | 2022-08-09 | 2022-08-09 | 一种二维场景海量矢量数据显示方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115309313A true CN115309313A (zh) | 2022-11-08 |
Family
ID=83860391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210948835.4A Pending CN115309313A (zh) | 2022-08-09 | 2022-08-09 | 一种二维场景海量矢量数据显示方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115309313A (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002236917A (ja) * | 2001-02-09 | 2002-08-23 | Fuji Xerox Co Ltd | 画像データ処理装置 |
CN1534511A (zh) * | 2003-03-27 | 2004-10-06 | 视窗和背景图形接口 | |
CN1534476A (zh) * | 2003-03-27 | 2004-10-06 | 矢量图形的标记语言和对象模型 | |
US7423655B1 (en) * | 2002-06-24 | 2008-09-09 | Adobe Systems Incorporated | Revealing clipped portion of image object |
CN102074026A (zh) * | 2010-09-29 | 2011-05-25 | 深圳市蓝韵实业有限公司 | 一种在医学图像上显示矢量图形的方法 |
JP2012133765A (ja) * | 2010-11-30 | 2012-07-12 | Canon Inc | 画像処理装置、および画像処理方法 |
CN104268145A (zh) * | 2014-08-21 | 2015-01-07 | 中国科学院遥感与数字地球研究所 | 一种复杂矢量数据的地图快速绘制方法 |
CN104375793A (zh) * | 2014-10-15 | 2015-02-25 | 武汉润凌科技有限公司 | 一种嵌入式系统背景图更新显示方法 |
CN104898947A (zh) * | 2015-05-26 | 2015-09-09 | 中国民航大学 | 一种基于鼠标位置实现gdi电子矢量地图缩放及平移的方法 |
CN106971370A (zh) * | 2017-03-30 | 2017-07-21 | 王征 | 一种基于图片作为背景画平面矢量图的系统及方法 |
CN113077477A (zh) * | 2021-03-19 | 2021-07-06 | 中山大学 | 图像矢量化方法、装置及终端设备 |
CN113421338A (zh) * | 2021-07-21 | 2021-09-21 | 北京臻观数智科技有限公司 | 一种将二维矢量进行三维渲染的方法 |
CN114529643A (zh) * | 2021-11-19 | 2022-05-24 | 嘉兴恒创电力设计研究院有限公司 | 一种海量gim模型优化显示的方法 |
CN114549303A (zh) * | 2022-01-14 | 2022-05-27 | 北京百度网讯科技有限公司 | 图像显示、处理方法、装置、设备和存储介质 |
-
2022
- 2022-08-09 CN CN202210948835.4A patent/CN115309313A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002236917A (ja) * | 2001-02-09 | 2002-08-23 | Fuji Xerox Co Ltd | 画像データ処理装置 |
US7423655B1 (en) * | 2002-06-24 | 2008-09-09 | Adobe Systems Incorporated | Revealing clipped portion of image object |
CN1534511A (zh) * | 2003-03-27 | 2004-10-06 | 视窗和背景图形接口 | |
CN1534476A (zh) * | 2003-03-27 | 2004-10-06 | 矢量图形的标记语言和对象模型 | |
CN102074026A (zh) * | 2010-09-29 | 2011-05-25 | 深圳市蓝韵实业有限公司 | 一种在医学图像上显示矢量图形的方法 |
JP2012133765A (ja) * | 2010-11-30 | 2012-07-12 | Canon Inc | 画像処理装置、および画像処理方法 |
CN104268145A (zh) * | 2014-08-21 | 2015-01-07 | 中国科学院遥感与数字地球研究所 | 一种复杂矢量数据的地图快速绘制方法 |
CN104375793A (zh) * | 2014-10-15 | 2015-02-25 | 武汉润凌科技有限公司 | 一种嵌入式系统背景图更新显示方法 |
CN104898947A (zh) * | 2015-05-26 | 2015-09-09 | 中国民航大学 | 一种基于鼠标位置实现gdi电子矢量地图缩放及平移的方法 |
CN106971370A (zh) * | 2017-03-30 | 2017-07-21 | 王征 | 一种基于图片作为背景画平面矢量图的系统及方法 |
CN113077477A (zh) * | 2021-03-19 | 2021-07-06 | 中山大学 | 图像矢量化方法、装置及终端设备 |
CN113421338A (zh) * | 2021-07-21 | 2021-09-21 | 北京臻观数智科技有限公司 | 一种将二维矢量进行三维渲染的方法 |
CN114529643A (zh) * | 2021-11-19 | 2022-05-24 | 嘉兴恒创电力设计研究院有限公司 | 一种海量gim模型优化显示的方法 |
CN114549303A (zh) * | 2022-01-14 | 2022-05-27 | 北京百度网讯科技有限公司 | 图像显示、处理方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
曹明元主编: "GIS空间数据处理与应用", 31 May 2021, 北京:机械工业出版社, pages: 167 - 168 * |
王建安;李少林;金晶;: "基于QT/Embedded与Mitab库的嵌入式电子地图", 计算机系统应用, no. 05, pages 47 - 51 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105989130B (zh) | 电子地图展示方法、装置及电子设备 | |
CN110347317B (zh) | 一种窗口切换方法、装置、存储介质及交互智能平板 | |
CN103955339A (zh) | 一种终端操作方法及终端设备 | |
CN104035664A (zh) | 一种应用程序用户界面的显示方法及装置 | |
CN103605506A (zh) | 一种图形用户界面资源的显示方法及终端 | |
CN114648615B (zh) | 目标对象交互式重现的控制方法、装置、设备及存储介质 | |
CN111026480A (zh) | 一种内容显示方法及电子设备 | |
CN109324736A (zh) | 局部放大图片的交互方法及装置 | |
CN110209325A (zh) | 一种3d场景显示控制方法、系统及设备 | |
CN116301489A (zh) | 显示完整地图边界的处理方法、系统及相关装置 | |
CN109144443A (zh) | 电子设备多屏显示方法、电子设备及计算机可读存储介质 | |
US9501812B2 (en) | Map performance by dynamically reducing map detail | |
CN115309313A (zh) | 一种二维场景海量矢量数据显示方法及设备 | |
CN105094614B (zh) | 图像显示方法及装置 | |
CN113938614B (zh) | 一种视频画面的缩放方法、装置、设备及存储介质 | |
JP6287498B2 (ja) | 電子ホワイトボード装置、電子ホワイトボードの入力支援方法、及びプログラム | |
CN108074281B (zh) | 棱锥全景图模型生成方法及装置、存储介质及电子设备 | |
CN111489295B (zh) | 图像处理方法、电子装置及存储介质 | |
CN111240541B (zh) | 界面切换方法、电子设备及计算机可读存储介质 | |
CN114115633A (zh) | 单触摸屏多触摸接收设备的触控方法、装置和计算机设备 | |
CN111625693A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN114998478B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN113407888B (zh) | 浏览器的尺寸调整方法、装置、存储介质及计算机设备 | |
CN109389678B (zh) | 确定操作焦点坐标的方法、装置及设备 | |
CN105376510A (zh) | 一种投影方法及投影装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |