一种用于高速实时仿真的曲线绘制方法

文档序号:6434467阅读:159来源:国知局
专利名称:一种用于高速实时仿真的曲线绘制方法
技术领域
本发明涉及一种曲线绘制方法,特别是一种用于高速实时仿真的曲线绘制方法。
背景技术
目前的曲线绘制主要包括数据存储结构管理和曲线绘制策略。数据存储结构管理方面,多数曲线绘制方法采用动态链表的方式分配存储数据的空间,该方法的优点是只要系统内存允许,可以任意增加绘制点。缺点是为数据存储分配的内存不连续,从而增加了数据检索时间。快速曲线绘制策略方面的方法主要有这几种
第一种不对数据预处理,直接从头到尾重绘所有数据点和连线。该方法的优点是程序简单,没有增加额外的辅助数据,缺点是没有考虑所绘点是否在绘制区域内,绘制点是否重复,执行一次绘制循环会浪费很多时间在不显示的点或重复显示的点上。第二种采用双缓存技术绘制曲线图。即在程序中创建一个与屏幕绘图区域一致的对象,先将图形绘制到该对象上,绘制完后再一次性拷贝到屏幕内存上。该方法的优点是每画完一次曲线只需要进行一次屏幕拷贝工作。由于屏幕绘制速度慢,而图形拷贝速度快, 所以该方法能显著加快绘制速度。该方法的缺点随着数据量的增加,在内存中绘制曲线的效率会越来越低。第三种对数据点构造金字塔结构的索引树,然后根据不同的分辨率状态显示曲线。此种方法缺点是构造此索引树的本身要消耗大量时间,构造后会占用大量内存空间,稳定性也很难控制,会造成很多内存碎片。高速实时仿真系统要求实时,如周期10ms,绘制大数据量的数据曲线。以上方法在绘制时间上难以达到要求。

发明内容
本发明目的在于提供一种用于高速实时仿真的曲线绘制方法,解决高速实时仿真时遇到的大数据量实时数据曲线难于绘制的问题。一种用于高速实时仿真的曲线绘制方法的具体步骤是 第一步搭建曲线绘制系统
曲线绘制系统包括系统设置模块、数据处理模块、数据绘制模块、窗口重绘模块。系统设置模块的功能是首先创建曲线绘制窗口,然后设置绘制曲线的类型,绘制二维曲线图、散点图或极坐标图。接着指定绘制曲线条数、名称、颜色,最后程序自动根据指定的曲线条数创建并初始化原始数据存储和显示点索引。数据处理模块的功能是将数据录入绘制系统后,首先记录数据点,如果输入到系统中的数据为极坐标值,转换为笛卡尔坐标值后再记录。然后进行数据精简操作。数据绘制模块的功能是负责新增点界面绘制工作,把数据处理模块处理后的数据绘制到屏幕上。
窗口重绘模块的功能是当窗口变化时,重新绘制曲线。第二步系统设置模块创建数据存储空间并初始化系统
系统设置模块完成绘制系统的绘制与初始化工作,首先系统设置模块接口设置共需绘制的曲线数量和曲线类型。接着通过预估仿真时间,从而预估数据总量,分配连续内存空间,用于存储原始数据和显示点索引。第三步数据处理模块处理录入的数据
首先建立屏幕窗口坐标系和值坐标系的映射关系。Dx = (if腿-^min ) KW - X01 - Xos)( 1)
Dy = (y腿-) KH - Yot - Y。》(2)
在公式(1)、(2)中,I·、Γ·为Χ、Υ的最大值域范围。W和H为屏幕横向和纵向总
像素数。i^、lM为显示窗口到距屏幕左边、右边像素距离。〗W、i‘为显示窗口到屏幕上边、下边像素距离。数据处理模块判断当前数据点是否超过当前显示范围,如果超过,直接忽略。如果没有超过,把当前数据点投射到屏幕大小的窗口上,得到当前数据点的屏幕坐标。Wi = (Pz-JTmift) IXXjsm — Xaki) X (W — X01 — Xm) + X01(3)
Wr = W-Ym-(Ymx - Ργ) KYmsx — D X (, - Υ0 - Foj)(4 )
在公式(3)、(4)中,、F·、W、H、X0^iT0s 与公式(1)、(2)相同,(P^,荇)为数据点的值,,Wy )为该点的屏幕坐标。如果当前数据点是第一个数据点,记录下该点索引,并记录该点的屏幕坐标。如果当前数据点不是第一个数据点,先判断此点屏幕坐标与上一个点的屏幕坐标是否相同,如果相同,忽略此点;如果不同,则把该点的索引记录到显示数据索引队列中。第四步数据绘制模块绘制数据点
在内存中,数据绘制模块对每一个曲线绘制窗口建立一个对应的内存区域,当显示区域不发生改变,只添加新数据点时,输入数据后,数据处理模块判断此点是否为显示有效点,如果不是,则不处理;如果是,则数据绘制模块在窗口中绘制该点,接着在内存区域中也绘制该点。第五步显示窗口发生改变时调用窗口重绘模块重绘窗口
当显示窗口发生改变,窗口重绘模块判断接收到的消息,如果为重绘消息,数据绘制模块复制内存区域到窗口 ;如果为窗口大小改变消息,数据绘制模块在内存区域和窗口上重画曲线。如果为区域重新选择事件,则返回数据处理模块处理录入的数据,数据处理模块依次处理所有原始数据点。至此,完成数据曲线的绘制。本发明采用连续数据存储结构,节约了数据读取时间,在读写速度上优于其他曲线绘制系统中采用的树状或链状的存储机制;通过建立显示点索引,去掉显示重复的点和不在显示区域范围之内的点,精简了绘制点数;显示输出方面,结合了双缓存技术的优点又进行了改进,提高了显示输出效率。通过以上一系列的优化措施,使得本发明在绘制速度上比其他方法有明显优势。本发明成功应用于一个仿真步长IOms的高速实时仿真系统中,最多同时绘制13个窗口 40多条曲线,并且系统还支持在高速绘制的同时调整窗口显示区域, 如放大、缩小、调整值域范围。该发明能够广泛应用于需要高速实时数据曲线绘制的领域, 如高速转台角度显示、飞行器状态参数显示等等。


图1 一种用于高速实时仿真的曲线绘制方法的系统示意图。1.系统设置模块 2.数据处理模块 3.数据绘制模块 4.窗口重绘模块。
具体实施例方式一种用于高速实时仿真的曲线绘制方法的具体步骤是 第一步搭建曲线绘制系统
曲线绘制系统包括系统设置模块1、数据处理模块2、数据绘制模块3、窗口重绘模块4。系统设置模块1的功能是首先创建曲线绘制窗口,然后设置绘制曲线的类型,绘制二维曲线图、散点图或极坐标图。接着指定绘制曲线条数、名称、颜色,最后程序自动根据指定的曲线条数创建并初始化原始数据存储和显示点索引。数据处理模块2的功能是将数据录入绘制系统后,首先记录数据点,如果输入到系统中的数据为极坐标值,转换为笛卡尔坐标值后再记录。然后进行数据精简操作。数据绘制模块3的功能是负责新增点界面绘制工作,把数据处理模块2处理后的数据绘制到屏幕上。窗口重绘模块4的功能是当窗口变化时,重新绘制曲线。第二步系统设置模块1创建数据存储空间并初始化系统
系统设置模块1完成绘制系统的绘制与初始化工作,首先系统设置模块1接口设置共需绘制的曲线数量和曲线类型。接着通过预估仿真时间,从而预估数据总量,如仿真时间为10分钟,有1条曲线需要绘制,每秒钟有10个数据点产生,得到的数据总量为 10X60X1X10 = 6000个数据点,而每个数据点占用的空间是固定的。分配连续内存空间, 用于存储原始数据和显示点索引。第三步数据处理模块2处理录入的数据
首先建立屏幕窗口坐标系和值坐标系的映射关系。Dx = (if腿-X— ) !{W - X01 - Xm)( 1)
D1 = (y腿-YJHJi-Yor-YQ(2)
在公式(1)、(2)中,乂丽,Yma为X、Y的最大值域范围。W和H为屏幕横向和纵向总
像素数。irffi、lM为显示窗口到距屏幕左边、右边像素距离。为显示窗口到屏幕上边、下边像素距离。数据处理模块2判断当前数据点是否超过当前显示范围,如果超过,直接忽略。如果没有超过,把当前数据点投射到屏幕大小的窗口上,得到当前数据点的屏幕坐标。
Wx = (Px -- Xffiil)X(W-X01 -Xm) +Xm(3) W1 =W - Yos - (7臓—Py) KYmm-YmkJxiW-Yor - D (4 )
在公式(3)、(4)中,I·、、W、H、Xffi、X0i 与公式(1)、(2)相同,( ,马)为数据点的值,,为该点的屏幕坐标。如果当前数据点是第一个数据点,记录下该点索引,并记录该点的屏幕坐标。如果当前数据点不是第一个数据点,先判断此点屏幕坐标与上一个点的屏幕坐标是否相同,如果相同,忽略此点;如果不同,则把该点的索引记录到显示数据索引队列中。第四步数据绘制模块3绘制数据点
在内存中,数据绘制模块3对每一个曲线绘制窗口建立一个对应的内存区域,当显示区域不发生改变,只添加新数据点时,输入数据后,数据处理模块2判断此点是否为显示有效点,如果不是,则不处理;如果是,则数据绘制模块3在窗口中绘制该点,接着在内存区域中也绘制该点。第五步显示窗口发生改变时调用窗口重绘模块4重绘窗口
当显示窗口发生改变,窗口重绘模块4判断接收到的消息,如果为重绘消息,数据绘制模块3复制内存区域到窗口 ;如果为窗口大小改变消息,数据绘制模块3在内存区域和窗口上重画曲线。如果为区域重新选择事件,如用鼠标拖动选择了一块区域或者手工设定了新的显示区域边界值,则返回数据处理模块2处理录入的数据,数据处理模块2依次处理所有原始数据点。至此,完成数据曲线的绘制。
权利要求
1. 一种用于高速实时仿真的曲线绘制方法,其特征在于该方法的具体步骤为 第一步搭建曲线绘制系统曲线绘制系统包括系统设置模块(1)、数据处理模块(2)、数据绘制模块(3)、窗口重绘模块(4);系统设置模块(1)的功能是首先创建曲线绘制窗口,然后设置绘制曲线的类型,绘制二维曲线图、散点图或极坐标图;接着指定绘制曲线条数、名称、颜色,最后程序自动根据指定的曲线条数创建并初始化原始数据存储和显示点索引;数据处理模块(2)的功能是将数据录入绘制系统后,首先记录数据点,如果输入到系统中的数据为极坐标值,转换为笛卡尔坐标值后再记录;然后进行数据精简操作;数据绘制模块(3)的功能是负责新增点界面绘制工作,把数据处理模块(2)处理后的数据绘制到屏幕上;窗口重绘模块(4)的功能是当窗口变化时,重新绘制曲线; 第二步系统设置模块(1)创建数据存储空间并初始化系统系统设置模块(1)完成绘制系统的绘制与初始化工作,首先系统设置模块(1)接口设置共需绘制的曲线数量和曲线类型;接着通过预估仿真时间,从而预估数据总量,分配连续内存空间,用于存储原始数据和显示点索引; 第三步数据处理模块(2)处理录入的数据首先建立屏幕窗口坐标系和值坐标系的映射关系;
全文摘要
本发明公开了一种用于高速实时仿真的曲线绘制方法,曲线绘制系统包括系统设置模块(1)、数据处理模块(2)、数据绘制模块(3)、窗口重绘模块(4)。通过系统设置模块(1)创建数据存储空间并初始化系统,数据处理模块(2)处理录入的数据,数据绘制模块(3)绘制数据点,显示窗口发生改变时调用窗口重绘模块(4)重绘窗口,完成数据曲线的绘制。本发明采用连续数据存储结构,节约了数据读取时间,在读写速度上优于其他曲线绘制系统中采用的树状或链状的存储机制,通过以上一系列的优化措施,使得本发明在绘制速度上比其他方法有明显优势。
文档编号G06F9/44GK102360287SQ20111029474
公开日2012年2月22日 申请日期2011年9月28日 优先权日2011年9月28日
发明者孔福, 张金涛, 曹亮, 赵温胜, 闫晓莉 申请人:中国航天科工集团第四研究院第四总体设计部
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1