CN102360287A - 一种用于高速实时仿真的曲线绘制方法 - Google Patents
一种用于高速实时仿真的曲线绘制方法 Download PDFInfo
- Publication number
- CN102360287A CN102360287A CN201110294745XA CN201110294745A CN102360287A CN 102360287 A CN102360287 A CN 102360287A CN 201110294745X A CN201110294745X A CN 201110294745XA CN 201110294745 A CN201110294745 A CN 201110294745A CN 102360287 A CN102360287 A CN 102360287A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- window
- point
- curve
- 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.)
- Granted
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种用于高速实时仿真的曲线绘制方法,曲线绘制系统包括:系统设置模块(1)、数据处理模块(2)、数据绘制模块(3)、窗口重绘模块(4)。通过系统设置模块(1)创建数据存储空间并初始化系统,数据处理模块(2)处理录入的数据,数据绘制模块(3)绘制数据点,显示窗口发生改变时调用窗口重绘模块(4)重绘窗口,完成数据曲线的绘制。本发明采用连续数据存储结构,节约了数据读取时间,在读写速度上优于其他曲线绘制系统中采用的树状或链状的存储机制,通过以上一系列的优化措施,使得本发明在绘制速度上比其他方法有明显优势。
Description
技术领域
本发明涉及一种曲线绘制方法,特别是一种用于高速实时仿真的曲线绘制方法。
背景技术
目前的曲线绘制主要包括数据存储结构管理和曲线绘制策略。
数据存储结构管理方面,多数曲线绘制方法采用动态链表的方式分配存储数据的空间,该方法的优点是只要系统内存允许,可以任意增加绘制点。缺点是为数据存储分配的内存不连续,从而增加了数据检索时间。
快速曲线绘制策略方面的方法主要有这几种:
第一种:不对数据预处理,直接从头到尾重绘所有数据点和连线。该方法的优点是程序简单,没有增加额外的辅助数据,缺点是没有考虑所绘点是否在绘制区域内,绘制点是否重复,执行一次绘制循环会浪费很多时间在不显示的点或重复显示的点上。
第二种:采用双缓存技术绘制曲线图。即在程序中创建一个与屏幕绘图区域一致的对象,先将图形绘制到该对象上,绘制完后再一次性拷贝到屏幕内存上。该方法的优点是每画完一次曲线只需要进行一次屏幕拷贝工作。由于屏幕绘制速度慢,而图形拷贝速度快,所以该方法能显著加快绘制速度。该方法的缺点随着数据量的增加,在内存中绘制曲线的效率会越来越低。
第三种:对数据点构造金字塔结构的索引树,然后根据不同的分辨率状态显示曲线。此种方法缺点是构造此索引树的本身要消耗大量时间,构造后会占用大量内存空间,稳定性也很难控制,会造成很多内存碎片。
高速实时仿真系统要求实时,如:周期10ms,绘制大数据量的数据曲线。以上方法在绘制时间上难以达到要求。
发明内容
本发明目的在于提供一种用于高速实时仿真的曲线绘制方法,解决高速实时仿真时遇到的大数据量实时数据曲线难于绘制的问题。
一种用于高速实时仿真的曲线绘制方法的具体步骤是:
第一步 搭建曲线绘制系统
曲线绘制系统包括:系统设置模块、数据处理模块、数据绘制模块、窗口重绘模块。
系统设置模块的功能是:首先创建曲线绘制窗口,然后设置绘制曲线的类型,绘制二维曲线图、散点图或极坐标图。接着指定绘制曲线条数、名称、颜色,最后程序自动根据指定的曲线条数创建并初始化原始数据存储和显示点索引。
数据处理模块的功能是:将数据录入绘制系统后,首先记录数据点,如果输入到系统中的数据为极坐标值,转换为笛卡尔坐标值后再记录。然后进行数据精简操作。
数据绘制模块的功能是:负责新增点界面绘制工作,把数据处理模块处理后的数据绘制到屏幕上。
窗口重绘模块的功能是:当窗口变化时,重新绘制曲线。
第二步 系统设置模块创建数据存储空间并初始化系统
系统设置模块完成绘制系统的绘制与初始化工作,首先系统设置模块接口设置共需绘制的曲线数量和曲线类型。接着通过预估仿真时间,从而预估数据总量,分配连续内存空间,用于存储原始数据和显示点索引。
第三步 数据处理模块处理录入的数据
首先建立屏幕窗口坐标系和值坐标系的映射关系。
数据处理模块判断当前数据点是否超过当前显示范围,如果超过,直接忽略。如果没有超过,把当前数据点投射到屏幕大小的窗口上,得到当前数据点的屏幕坐标。
如果当前数据点是第一个数据点,记录下该点索引,并记录该点的屏幕坐标。如果当前数据点不是第一个数据点,先判断此点屏幕坐标与上一个点的屏幕坐标是否相同,如果相同,忽略此点;如果不同,则把该点的索引记录到显示数据索引队列中。
第四步 数据绘制模块绘制数据点
在内存中,数据绘制模块对每一个曲线绘制窗口建立一个对应的内存区域,当显示区域不发生改变,只添加新数据点时,输入数据后,数据处理模块判断此点是否为显示有效点,如果不是,则不处理;如果是,则数据绘制模块在窗口中绘制该点,接着在内存区域中也绘制该点。
第五步 显示窗口发生改变时调用窗口重绘模块重绘窗口
当显示窗口发生改变,窗口重绘模块判断接收到的消息,如果为重绘消息,数据绘制模块复制内存区域到窗口;如果为窗口大小改变消息,数据绘制模块在内存区域和窗口上重画曲线。如果为区域重新选择事件,则返回数据处理模块处理录入的数据,数据处理模块依次处理所有原始数据点。
至此,完成数据曲线的绘制。
本发明采用连续数据存储结构,节约了数据读取时间,在读写速度上优于其他曲线绘制系统中采用的树状或链状的存储机制;通过建立显示点索引,去掉显示重复的点和不在显示区域范围之内的点,精简了绘制点数;显示输出方面,结合了双缓存技术的优点又进行了改进,提高了显示输出效率。通过以上一系列的优化措施,使得本发明在绘制速度上比其他方法有明显优势。本发明成功应用于一个仿真步长10ms的高速实时仿真系统中,最多同时绘制13个窗口40多条曲线,并且系统还支持在高速绘制的同时调整窗口显示区域,如放大、缩小、调整值域范围。该发明能够广泛应用于需要高速实时数据曲线绘制的领域,如高速转台角度显示、飞行器状态参数显示等等。
附图说明
图1 一种用于高速实时仿真的曲线绘制方法的系统示意图。
1.系统设置模块 2.数据处理模块 3.数据绘制模块 4.窗口重绘模块。
具体实施方式
一种用于高速实时仿真的曲线绘制方法的具体步骤是:
第一步 搭建曲线绘制系统
曲线绘制系统包括:系统设置模块1、数据处理模块2、数据绘制模块3、窗口重绘模块4。
系统设置模块1的功能是:首先创建曲线绘制窗口,然后设置绘制曲线的类型,绘制二维曲线图、散点图或极坐标图。接着指定绘制曲线条数、名称、颜色,最后程序自动根据指定的曲线条数创建并初始化原始数据存储和显示点索引。
数据处理模块2的功能是:将数据录入绘制系统后,首先记录数据点,如果输入到系统中的数据为极坐标值,转换为笛卡尔坐标值后再记录。然后进行数据精简操作。
数据绘制模块3的功能是:负责新增点界面绘制工作,把数据处理模块2处理后的数据绘制到屏幕上。
窗口重绘模块4的功能是:当窗口变化时,重新绘制曲线。
第二步 系统设置模块1创建数据存储空间并初始化系统
系统设置模块1完成绘制系统的绘制与初始化工作,首先系统设置模块1接口设置共需绘制的曲线数量和曲线类型。接着通过预估仿真时间,从而预估数据总量,如仿真时间为10分钟,有1条曲线需要绘制,每秒钟有10个数据点产生,得到的数据总量为10×60×1×10=6000个数据点,而每个数据点占用的空间是固定的。分配连续内存空间,用于存储原始数据和显示点索引。
第三步 数据处理模块2处理录入的数据
首先建立屏幕窗口坐标系和值坐标系的映射关系。
(1)
数据处理模块2判断当前数据点是否超过当前显示范围,如果超过,直接忽略。如果没有超过,把当前数据点投射到屏幕大小的窗口上,得到当前数据点的屏幕坐标。
如果当前数据点是第一个数据点,记录下该点索引,并记录该点的屏幕坐标。如果当前数据点不是第一个数据点,先判断此点屏幕坐标与上一个点的屏幕坐标是否相同,如果相同,忽略此点;如果不同,则把该点的索引记录到显示数据索引队列中。
第四步 数据绘制模块3绘制数据点
在内存中,数据绘制模块3对每一个曲线绘制窗口建立一个对应的内存区域,当显示区域不发生改变,只添加新数据点时,输入数据后,数据处理模块2判断此点是否为显示有效点,如果不是,则不处理;如果是,则数据绘制模块3在窗口中绘制该点,接着在内存区域中也绘制该点。
第五步 显示窗口发生改变时调用窗口重绘模块4重绘窗口
当显示窗口发生改变,窗口重绘模块4判断接收到的消息,如果为重绘消息,数据绘制模块3复制内存区域到窗口;如果为窗口大小改变消息,数据绘制模块3在内存区域和窗口上重画曲线。如果为区域重新选择事件,如用鼠标拖动选择了一块区域或者手工设定了新的显示区域边界值,则返回数据处理模块2处理录入的数据,数据处理模块2依次处理所有原始数据点。
至此,完成数据曲线的绘制。
Claims (1)
1.一种用于高速实时仿真的曲线绘制方法,其特征在于该方法的具体步骤为:
第一步 搭建曲线绘制系统
曲线绘制系统包括:系统设置模块(1)、数据处理模块(2)、数据绘制模块(3)、窗口重绘模块(4);
系统设置模块(1)的功能是:首先创建曲线绘制窗口,然后设置绘制曲线的类型,绘制二维曲线图、散点图或极坐标图;接着指定绘制曲线条数、名称、颜色,最后程序自动根据指定的曲线条数创建并初始化原始数据存储和显示点索引;
数据处理模块(2)的功能是:将数据录入绘制系统后,首先记录数据点,如果输入到系统中的数据为极坐标值,转换为笛卡尔坐标值后再记录;然后进行数据精简操作;
数据绘制模块(3)的功能是:负责新增点界面绘制工作,把数据处理模块(2)处理后的数据绘制到屏幕上;
窗口重绘模块(4)的功能是:当窗口变化时,重新绘制曲线;
第二步 系统设置模块(1)创建数据存储空间并初始化系统
系统设置模块(1)完成绘制系统的绘制与初始化工作,首先系统设置模块(1)接口设置共需绘制的曲线数量和曲线类型;接着通过预估仿真时间,从而预估数据总量,分配连续内存空间,用于存储原始数据和显示点索引;
第三步 数据处理模块(2)处理录入的数据
首先建立屏幕窗口坐标系和值坐标系的映射关系;
数据处理模块(2)判断当前数据点是否超过当前显示范围,如果超过,直接忽略;如果没有超过,把当前数据点投射到屏幕大小的窗口上,得到当前数据点的屏幕坐标;
(3)
如果当前数据点是第一个数据点,记录下该点索引,并记录该点的屏幕坐标;如果当前数据点不是第一个数据点,先判断此点屏幕坐标与上一个点的屏幕坐标是否相同,如果相同,忽略此点;如果不同,则把该点的索引记录到显示数据索引队列中;
第四步 数据绘制模块(3)绘制数据点
在内存中,数据绘制模块(3)对每一个曲线绘制窗口建立一个对应的内存区域,当显示区域不发生改变,只添加新数据点时,输入数据后,数据处理模块(2)判断此点是否为显示有效点,如果不是,则不处理;如果是,则数据绘制模块(3)在窗口中绘制该点,接着在内存区域中也绘制该点;
第五步 显示窗口发生改变时调用窗口重绘模块(4)重绘窗口
当显示窗口发生改变,窗口重绘模块(4)判断接收到的消息,如果为重绘消息,数据绘制模块(3)复制内存区域到窗口;如果为窗口大小改变消息,数据绘制模块(3)在内存区域和窗口上重画曲线;如果为区域重新选择事件,则返回数据处理模块(2)处理录入的数据,数据处理模块(2)依次处理所有原始数据点;
至此,完成数据曲线的绘制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110294745XA CN102360287B (zh) | 2011-09-28 | 2011-09-28 | 一种用于高速实时仿真的曲线绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110294745XA CN102360287B (zh) | 2011-09-28 | 2011-09-28 | 一种用于高速实时仿真的曲线绘制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102360287A true CN102360287A (zh) | 2012-02-22 |
CN102360287B CN102360287B (zh) | 2013-11-13 |
Family
ID=45585620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110294745XA Active CN102360287B (zh) | 2011-09-28 | 2011-09-28 | 一种用于高速实时仿真的曲线绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102360287B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281438A (zh) * | 2013-07-01 | 2015-01-14 | 中国科学院沈阳自动化研究所 | 一种ic装备多数据源曲线绘制系统及其设计方法 |
CN104616332A (zh) * | 2015-01-20 | 2015-05-13 | 北京奥普维尔科技有限公司 | 一种快速显示方法 |
CN106294463A (zh) * | 2015-06-01 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种动态曲线的数据点更新方法和设备 |
CN106570049A (zh) * | 2016-08-20 | 2017-04-19 | 合肥国为电子有限公司 | 一种地质勘探中大数据量的曲线快速绘图方法及其系统 |
CN106771452A (zh) * | 2016-11-15 | 2017-05-31 | 中国电子科技集团公司第四十研究所 | 一种基于mfc类库和屏幕分辨率的波形绘制和采集方法 |
CN108416022A (zh) * | 2018-03-07 | 2018-08-17 | 电信科学技术第五研究所有限公司 | 一种流式数据实时保真曲线绘制模型实现系统及方法 |
CN109118536A (zh) * | 2017-06-23 | 2019-01-01 | 卡西欧计算机株式会社 | 数据处理方法、数据处理装置以及存储介质 |
CN109612509A (zh) * | 2018-11-13 | 2019-04-12 | 中电科仪器仪表有限公司 | 一种基于手持式信号测量仪器的趋势图显示处理方法 |
CN111367614A (zh) * | 2020-03-30 | 2020-07-03 | 上海航天计算机技术研究所 | 测试数据曲线显示处理系统 |
CN113673009A (zh) * | 2021-08-25 | 2021-11-19 | 苏州同元软控信息技术有限公司 | 大规模仿真数据的显示方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221665A (zh) * | 2008-01-29 | 2008-07-16 | 周崭 | 利用索引树或数值树或编码树快速绘制曲线的方法 |
EP1953547A1 (en) * | 2007-01-31 | 2008-08-06 | Sysmex Corporation | Sample analyzer and sample analyzing method |
-
2011
- 2011-09-28 CN CN201110294745XA patent/CN102360287B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1953547A1 (en) * | 2007-01-31 | 2008-08-06 | Sysmex Corporation | Sample analyzer and sample analyzing method |
CN101221665A (zh) * | 2008-01-29 | 2008-07-16 | 周崭 | 利用索引树或数值树或编码树快速绘制曲线的方法 |
Non-Patent Citations (1)
Title |
---|
黄胜忠: "任意个控制点的三次B样条曲线绘制系统设计", 《计算机与现代化》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281438A (zh) * | 2013-07-01 | 2015-01-14 | 中国科学院沈阳自动化研究所 | 一种ic装备多数据源曲线绘制系统及其设计方法 |
CN104616332A (zh) * | 2015-01-20 | 2015-05-13 | 北京奥普维尔科技有限公司 | 一种快速显示方法 |
CN106294463B (zh) * | 2015-06-01 | 2020-02-21 | 阿里巴巴集团控股有限公司 | 一种动态曲线的数据点更新方法和设备 |
CN106294463A (zh) * | 2015-06-01 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种动态曲线的数据点更新方法和设备 |
CN106570049A (zh) * | 2016-08-20 | 2017-04-19 | 合肥国为电子有限公司 | 一种地质勘探中大数据量的曲线快速绘图方法及其系统 |
CN106570049B (zh) * | 2016-08-20 | 2019-11-01 | 合肥国为电子有限公司 | 一种地质勘探中大数据量的曲线快速绘图方法及其系统 |
CN106771452A (zh) * | 2016-11-15 | 2017-05-31 | 中国电子科技集团公司第四十研究所 | 一种基于mfc类库和屏幕分辨率的波形绘制和采集方法 |
CN109118536A (zh) * | 2017-06-23 | 2019-01-01 | 卡西欧计算机株式会社 | 数据处理方法、数据处理装置以及存储介质 |
CN108416022A (zh) * | 2018-03-07 | 2018-08-17 | 电信科学技术第五研究所有限公司 | 一种流式数据实时保真曲线绘制模型实现系统及方法 |
CN108416022B (zh) * | 2018-03-07 | 2020-06-09 | 电信科学技术第五研究所有限公司 | 一种流式数据实时保真曲线绘制模型实现系统及方法 |
CN109612509A (zh) * | 2018-11-13 | 2019-04-12 | 中电科仪器仪表有限公司 | 一种基于手持式信号测量仪器的趋势图显示处理方法 |
CN109612509B (zh) * | 2018-11-13 | 2021-05-07 | 中电科思仪科技股份有限公司 | 一种基于手持式信号测量仪器的趋势图显示处理方法 |
CN111367614A (zh) * | 2020-03-30 | 2020-07-03 | 上海航天计算机技术研究所 | 测试数据曲线显示处理系统 |
CN113673009A (zh) * | 2021-08-25 | 2021-11-19 | 苏州同元软控信息技术有限公司 | 大规模仿真数据的显示方法及装置 |
CN113673009B (zh) * | 2021-08-25 | 2023-12-29 | 苏州同元软控信息技术有限公司 | 大规模仿真数据的显示方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102360287B (zh) | 2013-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102360287A (zh) | 一种用于高速实时仿真的曲线绘制方法 | |
CA2886429C (en) | Method for partitioning, managing and displaying a collaboration space and interactive input system employing same | |
CN104572783A (zh) | 网页点击情况的展示方法及装置 | |
EP1615118A3 (en) | Management of multiple window panels with a graphical user interface | |
CN105279253A (zh) | 提升网页画布渲染速度的系统及方法 | |
CN102096897B (zh) | 基于分块渲染的gpu中块存储策略的实现 | |
CN102455859B (zh) | 一种频谱数据显示方法和装置 | |
CN101882311A (zh) | 基于cuda技术的背景建模加速方法 | |
CN107273304A (zh) | 一种提高固态硬盘顺序读性能的方法及固态硬盘 | |
EP2495648A3 (en) | Improving network efficiency for continuous remote copy | |
CN104077056B (zh) | 屏幕显示页面的平移方法和系统 | |
CN103645873B (zh) | 一种在趋势曲线系统中实现高效数据缓存的方法 | |
CN103631824B (zh) | 一种网页显示方法及装置 | |
CN103425438B (zh) | 优化固态硬盘写请求的方法及其固态硬盘 | |
CN102402409A (zh) | 一种刷屏方法和装置 | |
CN106251291A (zh) | 利用OpenGL与OpenCL协作实现图像缩放的方法及系统 | |
CN101393498B (zh) | 一种用于触摸屏定位的图像处理方法 | |
CN102591651A (zh) | 一种网页3d渲染和控制方法及装置 | |
CN105093283A (zh) | 一种三维观测系统面元属性多线程快速显示方法 | |
CN108830911A (zh) | 一种在线动态地图生成方法 | |
CN111046214B (zh) | 一种动态处理模型的方法 | |
CN1783203A (zh) | 硬件加速显示水平线段的装置及其方法 | |
CN103700362A (zh) | 多信号窗口显示方法及装置 | |
CN102999518A (zh) | 一种图形设备接口资源管理方法和装置 | |
CN103021373B (zh) | 一种基于fpag的图形生成器及其工作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |