CN101221665A - 利用索引树或数值树或编码树快速绘制曲线的方法 - Google Patents
利用索引树或数值树或编码树快速绘制曲线的方法 Download PDFInfo
- Publication number
- CN101221665A CN101221665A CNA200810017421XA CN200810017421A CN101221665A CN 101221665 A CN101221665 A CN 101221665A CN A200810017421X A CNA200810017421X A CN A200810017421XA CN 200810017421 A CN200810017421 A CN 200810017421A CN 101221665 A CN101221665 A CN 101221665A
- Authority
- CN
- China
- Prior art keywords
- tree
- data
- index
- drawing area
- 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.)
- Pending
Links
Images
Classifications
-
- 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/203—Drawing of straight lines or curves
Abstract
本发明是一种针对设备或软件系统的曲线绘制方法,具体地讲就是在设备或软件系统读入外部长时间实时采集的信号数据的过程中,或在读入大容量静态数据的过程中,同步建立数据的索引树或数值树或编码树,并利用它们在显示终端上独立实现动态或静态快速绘制数据曲线的方法。
Description
技术领域
本发明是一种针对设备或软件系统的曲线绘制方法,具体地讲就是在设备或软件系统读入外部长时间实时采集的信号数据的过程中,或在读入大容量静态数据的过程中,同步建立数据的索引树或数值树或编码树,并利用它们在显示终端上独立实现动态或静态快速绘制数据曲线的方法。
背景技术
在这里定义编辑曲线是指:用鼠标、键盘等操作工具对显示终端上的曲线进行诸如放大、缩小、平移、捕捉等操作。在这里定义计算机效率低是指:诸如曲线绘制延迟、实时绘制曲线达不到同步显示、编辑曲线将会非常慢、屏幕绘制曲线会闪烁、计算机甚至会卡死等情形。在这里将设备或软件系统读入外部长时间实时采集信号数据的过程,简称为采集数据或采集外部数据,这种过程中可以对数据进行一定的处理。这里所说的曲线绘制也可以采用点、矩形等其它形式出现。
目前,计算机绘制曲线的方法主要有这几种方法:
第一种:在显示终端上,每次不管是全部还是部分地显示曲线,计算机对所有绘图数据都从头到尾循环执行一次屏幕画线命令。这种方法的优点是程序执行语句控制流程简单明了,没有增加额外的辅助数据,因而占用较小的内存。假设n是全体绘图数据总数。缺点是每次计算机CPU需要在内存执行一个n次的循环计算,同时在屏幕上执行n次画线命令,花费较多的时间。这种方法一般用在绘图数据量较小的场合。当绘图数据量很大时,计算机效率将会很低。
第二种.采用双缓冲技术绘制曲线图。双缓冲即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上。假设n是全体绘图数据总数。这种方法的优点是每次计算机CPU在内存执行一个n次的循环画线,但只需在屏幕上执行一次图形拷贝,一次图形拷贝的时间很短,不会随绘图数据的增加而变化,是固定值,对比第一种方法,这样能大大加快绘图的速度。虽然该方法在内存中创建一个与屏幕绘图区域一致的对象,其所占用的内存量影响不大,但其主要缺点是:由于该方法还需要计算机CPU每次在内存绘图对象上执行一个n次的循环画线,当绘图数据量n越来越大时,特别是当全部绘图曲线显示在屏幕上时,计算机效率还将会很低。
第三种:在显示终端上,规定只显示固定绘图数据个数的绘图数据曲线。这种方法的优点是:计算机CPU每次在内存执行一个常数次级别的循环计算,并同时在屏幕上执行常数次画线命令。由于固定绘图数据个数是一个可以控制的常数,所以选取合适的值可以满足需要,可以避免出现计算机效率低下的现象。这种方法的缺点是:由于绘图数据个数是一个固定值,在实时状态下,根据计算机的性能不能设置的很大,所以在显示终端上编辑曲线时,只能看到最多固定个数据的绘图曲线,而不能编辑超出固定个数据的绘图曲线。也就是说,在屏幕上不能实时地、整体地观察、分析全部绘图数据曲线。
发明内容
针对上面的描述,本发明的一个目的就是建立一种计算机曲线快速绘制方法,来避免上面所述缺点情况的出现,从而提高了计算机效率。
本发明方法原理是:我们知道,计算机显示终端的特性之一就是屏幕分辨率,一般标记为:屏幕像素宽度×屏幕像素高度。诸如800×600像素、1024×768像素、1280×1024像素等等,这里称为屏幕物理坐标系。而我们通过计算机来绘图时,总是要先在用户坐标系中来绘图,用户坐标系是用户定义原始图形时所用的坐标系,如直角坐标系、极坐标系等。由于屏幕最大分辨率都是固定的,所以屏幕物理坐标系不能随意设定比例,而用户坐标系可以随意设定比例,这样,要将用户坐标系中绘制的图形显示在屏幕物理坐标系上,就必须通过用户坐标系和物理坐标系之间的转换来实现。当计算机长时间快速采集外部实时数据并需要将其全部绘制到用户坐标系上时,其时间方向坐标范围将会变得越来越大,通过坐标比例变换,将其全部显示到物理坐标系绘图屏幕上,绘图数据将会越来越密,就会出现多个连续数据的时间方向用户坐标值转换重合成一个时间方向物理坐标像素位置,而这多个连续数据值的变化方向坐标图形绘制只能看到其中极大值和极小值两个坐标的位置,变化方向其它坐标值都被覆盖。也就是说当前在用户坐标系里每多个连续数据只需执行一次极大值和极小值之间线段绘制命令,就可以完成屏幕物理坐标系上对应一个像素位置的图形绘制,而不必在每个像素位置上都执行多次线段绘制命令。而且随着时间的推移,实时采集数据会越来越多,用户坐标系时间方向坐标范围会越来越大,这多个数据个数也会逐渐变大,面对这种情况,我们通过对实时采集数据同步预处理,采用树这种数据结构来同步存储不同比例下需要绘制曲线的采集数据索引值或实际值或编码值,树中叶子层存储原始采集数据,其它不同层次的结点对应存储不同比例下所需的绘图数据信息。当需要重绘曲线时,我们通过重定位技术,找到当前比例状态下所需要绘制曲线的原始采集数据在树中的对应位置,经过变换迅速绘制曲线。例如对于2叉树来说,当“实际绘图区域原始绘图数据个数”小于“实际绘图区域时间方向像素宽度乘以2”时,就采用2叉树最深层叶子结点的信息(原始数据)来绘图;当“实际绘图区域原始绘图数据个数”不小于“实际绘图区域时间方向像素宽度乘以2”又小于“实际绘图区域时间方向像素宽度乘以4”时,就采用2叉树次深层结点的信息来绘图;当“实际绘图区域原始绘图数据个数”不小于“实际绘图区域时间方向像素宽度乘以4”又小于“实际绘图区域时间方向像素宽度乘以8”时,就采用次次深层结点的信息来绘图;……;依此类推,当“实际绘图区域原始绘图数据个数”不小于“实际绘图区域时间方向像素宽度乘以2的n次方”又小于“实际绘图区域时间方向像素宽度乘以2的n+1次方”时,就采用第(树高-n)层结点的信息来绘图(0≤整数n<树高)。同样道理适合于任意叉树形式。每当用户坐标系比例发生变化,通过计算和判断可以立刻找到树中对应层次的结点信息。当绘图区域产生刷新事件时,可以以小于固定的循环次数上限循环快速绘图。例如:对于2叉树来说,其固定的循环次数上限等于实际绘图区域像素分辨率的两倍。由于曲线重绘时对时间的消耗位于一个较小的固定的上限值之下,而计算机采集数据时同时建立信息树数据结构所花费的时间也限定在小的限度之内,使计算机CPU占有率维持在较低的水平,而计算机的内存可以满足长时间建立信息树所需的存储空间,从而实现屏幕上的长时间实时曲线编辑功能。在更深入讲述之前,预先定义了一些本文中将要用到的一些名词和规则如下:
位长M:这里定义M为计算机系统中某种无符号整型数据类型的位长度。例如:M=8(1个字节)、M=16(2个字节)、M=32(4个字节)、M=64(8个字节)、M=128(16个字节)等。
最大位长L:所有位长M可能取值中的最大值。在当前计算机系统中一般设置L=32。随着计算机性能的提高,L的取值可能为64、128、256等。
字模K:这里定义字模K等于某种位长M的无符号整型数据类型变量所能表示的最大值。针对不同的M,一一对应不同的K。这里定义K等于2的M次方。例如:M=8时,K=256;M=16时,K=65536等。
迭模S:这里定义迭模S等于‘X叉树分支数X’的以当前迭高为下标的乘方模数组值。具体解释详见图14和图16。
规则1:对于任意一个非负整数P和当前设定的索引字模K,我们让P和K做取余操作,即P除以K,取其余数Q,这样就保证0≤Q<K。我们称Q为K的相对索引。
规则2:对于任意一个非负整数P和当前设定的X叉树分支数X,我们让P和X做取余操作,即P除以X,取其余数R,这样就保证0≤R<X。我们称R为X的相对编码,简称编码。
本发明方法分别通过三条途径编制算法程序独立来实现:
途径一、同步建立采集数据的“X叉索引树”。
途径二、同步建立采集数据的“X叉数值树”。
途径三、同步建立采集数据的“X叉编码树”。
在途径一中X的定义域是2至结点索引字模的整数闭区间。在途径二中X的定义域是2至用户定义结点数值字模的整数闭区间。在途径三中X的定义域是2至结点编码字模的整数闭区间。在本发明中X取较小的值才有意义。我们把“X叉索引树”、“X叉数值树”和“X叉编码树”分别简称为索引树、数值树和编码树。在本文中我们所说的‘索引’就是数组变量或链表变量所储存采集数据的序号。
通过途径一方式说明:其总体流程图详见图1。首先,在设备或软件系统初始化时,我们也初始化一些必要的变量,比较特殊的变量初始化过程详见图13、图14、图15、图16、图17。其次,在设备或软件系统开始实时采集数据时,对这些数据同步进行预处理(详见图4)。然后,我们采用一种类似二维数组形式的多重链表数据结构来同步建立“X叉索引树”。这里所说的“X叉索引树”形式上称为“由X叉索引子树按迭构成X叉索引树”,简称“X叉索引树”。这里所说的“X叉索引子树”是这样一种形式:其高度等于当前迭高,其所能标记的数据个数等于当前迭模S。对于含有“X叉索引树”叶子的“X叉索引子树”,其所有叶子顺序存储S个外部采集数据值,其它子树的叶子由S个低一级顺序“X叉索引子树”的根结点组成。“X叉索引子树”的叶子顺序存储外部生成的数据,每采集到1个数据,就按一种或几种性质进行判断处理(如:寻找其中的极大值和极小值或寻找其中的极大值索引和极小值索引),当采集到X个数据时,系统就调用“X叉索引树”建树模块,然后系统重复进行下X个数据的处理。在建树模块里,对满足条件的数据的绝对索引按诸如“规则1”等方式进行处理,同时建立一个该X个叶子的父结点,父结点存储处理后的相对索引值(如:极大值和极小值的索引),同样,所建立的同一级父结点也按每份X个结点进行类似处理。同样,按迭代方式,各级祖先结点在同一级内也同步递推进行类似的处理过程,直至采集到的数据个数等于迭模S,这样就建立起一棵“X叉索引子树”。一棵“X叉索引子树”的非叶结点存储的是本身叶子的相对索引值。
这里所说的“由X叉索引子树按迭构成X叉索引树”是由“X叉索引子树”分级迭代生成,当第一个“X叉索引子树”建立完毕,紧接着重复开始下一个同一级别的“X叉索引子树”建立工作,我们把这一层次级别的“X叉索引子树”称为第一迭;同时前面已生成的“X叉索引子树”的根结点也成为更高一个级别的“X叉索引子树”的一个“叶子”,依此类推,当建立完成“叶子”数量是迭模S个当前级别的“X叉索引子树”时,也就同时完成一个更高一个级别的“X叉索引子树”建立工作,紧接着重复开始该更高一个级别的另一个“X叉索引子树”建立工作,我们把这更高一个层次级别的“X叉索引子树”称为第二迭;同时前面已生成的更高一个级别“X叉索引子树”的根结点也相应成为更更高一个级别的“X叉索引子树”的一个“叶子”,同理,我们把这更更高一个层次级别的“X叉索引子树”称为第三迭;……,重复迭代类推,依次建立起“X叉索引树”,其通用建树算法详见附图5。该“X叉索引树”按迭次级别共分为最多(最大索引位长/结点索引位长)个迭。在“X叉索引树”中,依照“规则1”,我们把这种将数据绝对索引通过迭形式变换到相对索引的算法称为“索引分迭调制算法”(详见附图5-1),反过来把这种将数据相对索引通过迭形式变换到绝对索引的算法称为“索引分迭解调算法”(详见附图7)。
当绘图区域比例发生变化时,本发明方法立刻重新确定实际绘图区域曲线的原始采集数据在“X叉索引树”中的映射位置,包括层次、开始索引、终止索引、按迭分剩余层数、迭次,并计算出屏幕物理坐标系时间方向开始位置及像素步进增量。当绘图区域产生刷新事件时,本发明方法循环读取“X叉索引树”中映射位置索引数据,通过“索引分迭解调算法”,变换到原始采集数据索引,绘制曲线。
当结点索引位长=最大索引位长时,“X叉索引树”由一棵“X叉索引子树”构成,数据的绝对索引经“索引分迭调制算法”转换成相对索引后,该相对索引实际上等于数据的绝对索引,所以,对这种特殊形式的“X叉索引树”,“索引分迭调制算法”可以省略,结点可以直接赋值为满足条件的数据绝对索引,从而节省时间。同样当结点索引位长=最大索引位长时曲线重定位算法可以简化,曲线重定位时计算当前显示层在索引树中的迭次及按迭分剩余层次可以省略,从而节省了时间。同样当结点索引位长=最大索引位长时曲线绘制算法也可以简化,因为整个“X叉索引树”就在第一迭内,其结点索引就是绝对索引,“索引分迭解调算法”可以省略,从而节省了时间。对于“X叉索引树”来说,当X=2并且结点索引位长=最大索引位长时,在“X叉索引树”中其显示效果和绘图速度效率最高,但相对占用较多的内存。
通过途径二方式说明:其总体流程图详见图2。首先,在设备或软件系统初始化时,我们也初始化一些必要的变量,比较特殊的变量初始化过程详见图13、图16、图17。其次,在设备或软件系统开始实时采集数据时,对这些数据同步进行预处理(详见图8)。然后,我们采用一种类似二维数组形式的多重链表数据结构来同步建立“X叉数值树”。每重链表的每个数据单元存储原始数据的符合条件(如极大值和极小值)的实际值。
这里所说的“X叉数值树”是这样一种形式:对于其每一个结点(不含叶子)仅存储原始数据的符合条件(如极大值和极小值)的实际值。最深层的每个叶子顺序存储外部采集数据实际值,每采集到1个数据,就按一种或几种性质进行判断处理(如:寻找其中的极大值和极小值),当采集到X个数据,系统就调用“X叉数值树”建树模块,然后系统重复进行下X个数据的处理。在建树模块里,系统就建立一个该X个数据的父结点,父结点存储该X个数据中符合条件(如极大值和极小值)的数据实际值。同样,所建立的同一级父结点也顺序按X个结点进行类似处理,即每建立起X个父结点,系统就建立一个该X个父结点的父父结点,父父结点存储该X个父结点中符合条件(如极大值和极小值)的数据实际值,然后系统继续进行下X个父结点的相同处理。同样,按迭代方式,各级祖先结点也同步在同一级内递推进行类似的处理过程,这样就建立起一个“X叉数值树”,其通用建树算法详见附图9。在“X叉数值树”中,当X=2时,其建树算法可以简化,从而节省时间。
当绘图区域比例发生变化时,本发明方法立刻重新确定实际绘图区域曲线的原始采集数据在“X叉数值树”中的映射位置,包括层次、开始索引、终止索引。当绘图区域产生刷新事件时,本发明方法循环读取“X叉数值树”中映射位置实际数据,直接绘制曲线。
通过途径三方式说明:其总体流程图详见图3。在设备或软件系统初始化时,我们也初始化一些必要的变量,比较特殊的变量初始化过程详见图13、图16、图17。其次,在设备或软件系统开始实时采集数据时,对这些数据同步进行预处理(详见图10)。然后,我们采用一种类似二维数组形式的多重链表数据结构来同步建立“X叉编码树”。我们这里所说的“X叉编码树”是这样一种形式:“X叉编码树”的叶子顺序存储外部采集的数据,每采集到1个数据,就按一种或几种性质进行判断处理(如:寻找其中的极大值和极小值),对满足条件的数据的绝对索引按诸如“规则2”等方式转换为相对编码。当采集到X个数据,系统就调用“X叉编码树”建树模块,然后系统重复进行下X个数据的处理。在建树模块里,系统就建立一个该X个数据的父结点,父结点存储该X个数据中符合条件(如极大值和极小值)的数据相对编码。同时父结点采用自己在父结点这一层的顺序计数进行诸如“规则2”等方式的相对编码处理,当处理到X个父结点时就创建其父父结点,父父结点存储符合条件的父结点的相对编码值(例如:找出X个父结点中含有极大值相对编码和极小值相对编码的父结点相对编码)。同理,父父结点也进行类似的相对编码处理。……,依次迭代类推,各级祖先结点也同步在同一级内进行类似的处理过程,这样就创建了“X叉编码树”,其通用建树算法详见附图11。在“X叉编码树”中,当X=2时,其建树算法可以简化,从而节省了时间。特别地,为了更进一步节省内存,可以采用位码的形式进行编码。例如:在“2叉编码树”中,使用单字节变量的8个位的0和1属性进行编码,一个单字节变量可以表示8个树结点的编码,其内存使用量只占‘一个结点使用一个单字节变量来编码所占的内存’的八分之一,但是对结点执行编码调制和编码解调的算法比较复杂,并在运行时花费较多的时间。
当绘图区域比例发生变化时,本发明方法立刻重新确定实际绘图区域曲线的原始采集数据在“X叉编码树”中的映射位置,包括层次、开始索引、终止索引。当绘图区域产生刷新事件时,本发明方法循环读取“X叉编码树”中映射位置索引数据,通过“编码解调算法”,变换到原始采集数据索引,绘制曲线。
在所有这三种途径中,“2叉数值树”途径的速度最快,但相对占用较多的内存;其次是“2叉索引树”途径,其速度和占用内存可以相互调节,效率介于另外两种途径之间;“2叉编码树”途径占用内存最小,但由于在“编码解调算法”中,需要执行一个逐渐趋向最大位长级别的循环操作,所以其速度最慢。对于X>2的三种“X叉树”途径情况,可以用在一些特殊需求的地方。对于大容量静态数据,我们把其数据读入的过程看作是采集外部数据(信号)的过程来类似处理,数据输入完后,可以静态地快速编辑曲线,而不会出现长时间等待情况。
附图说明:
图1:通过“X叉索引树”途径,实现本发明的总体流程图;
图2:通过“X叉数值树”途径,实现本发明的总体流程图;
图3:通过“X叉编码树”途径,实现本发明的总体流程图;
图4:通用“X叉索引树”采集数据预处理算法具体流程图;
图5:通用“X叉索引树”建树算法具体流程图;
图5-1:“索引分迭调制算法”具体流程图;
图6:通用“X叉索引树”或“X叉数值树”或“X叉编码树”中曲线绘制重定位算法具体流程图:
图7:“索引分迭解调算法”具体流程图;
图8:通用“X叉数值树”采集数据预处理算法具体流程图;
图9:通用“X叉数值树”建树算法具体流程图;
图10:通用“X叉编码树”采集数据预处理算法具体流程图;
图11:通用“X叉编码树”建树算法具体流程图;
图12:“编码解调算法”具体流程图;
图13:确定X叉树的总层次和采集数据计数溢出值算法具体流程图;
图14:计算确定“X叉索引树”中迭高及总迭次具体流程图:
图15:给‘迭高界限值’数组赋值算法具体流程图;
图16:在X叉树中,对X的乘方模数组赋值算法具体流程图;
图17:在X叉树中,对数据量上限数组赋值算法具体流程图;
具体实施方式:
下面我们参考附图,对本发明的实施例进行详尽的说明。
通过“途径一”的实施方式:其总体流程图详见图1。
首先,在系统启动时根据设定常数和初始化基本数据变量,这些常数是最大索引位长、“X叉索引树”的分支数、结点索引位长、绘图区域像素分辨率、绘图区域和实际绘图区域范围比例。如图13、14、 15、16、17所示的是一些基本数据变量初始化形式。
如图4所示:在系统实时采集数据部分,该方法每获得一个采集数据时,就进行判断:如果采集数据计数值小于数据量上限数组第‘放缩总层次计数’个元素值,则不执行放缩总层次计数变量累加,否则执行放缩总层次计数变量累加。然后,将系统实时采集的外部数据同步存入“X叉索引树”的叶结点中,并按每X个数据为一组找出其中的极大值、极小值及其绝对索引,调用“X叉索引树”建树模块。“X叉索引树”建树模块采用“索引分迭调制算法”,将极大和极小值的绝对索引变换为相对索引,通过判断计算变换,其相应结点存入所需相对索引,其详细过程如图5、图5-1所示。
每当用户用鼠标或键盘等工具对绘图区域曲线进行放大、缩小、移动等操作时,本发明方法获知这些消息,利用系统绘图区域比例设置信息,立刻重新计算确定曲线的原始采集数据在实际绘图区域的开始索引、终止索引及数据点总数,再计算出在“X叉索引树”中的对应层次、开始索引、终止索引、‘按迭分剩余层数’及迭次。当绘图区域产生刷新事件时,循环读取“X叉索引树”中相应的曲线相对索引数据,通过“索引分迭解调算法”变换映射到曲线的实际采集数据绝对索引,绘制曲线,其详细过程如图6、图7所示。
当“X叉索引树”的结点索引位长等于最大索引位长时,其“索引分迭调制算法”和“索引分迭解调算法”可以省略。
通过“途径二”的实施方式:其总体流程图详见图2。
首先,在系统启动时根据设定常数和初始化基本数据变量,这些常数是最大索引位长、“X叉数值树”的分支数、绘图区域像素分辨率、绘图区域和实际绘图区域范围比例。如图13、16、17所示的是一些基本数据变量初始化形式。
如图8所示:在系统实时采集数据部分,该方法每获得一个采集数据时,就进行判断:如果采集数据计数值小于数据量上限数组第‘放缩总层次计数’个元素值,则不执行放缩总层次计数变量累加,否则执行放缩总层次计数变量累加。然后,将系统实时采集的外部数据同步存入“X叉数值树”的叶结点中,并按每X个数据为一组找出其中的极大值、极小值及其绝对索引,然后调用“X叉数值树”建树模块。“X叉数值树”建树模块通过判断比较变换,其相应结点直接存入所需的极大和极小值,其详细过程如图9所示。
每当用户用鼠标或键盘等工具对绘图区域曲线进行放大、缩小、移动等操作时,本发明方法获知这些消息,利用系统绘图区域比例设置信息,立刻重新计算确定曲线的原始采集数据在实际绘图区域的开始索引、终止索引及数据点总数,再计算出在“X叉索引树”中的对应层次、开始索引、终止索引。当绘图区域产生刷新事件时,循环读取“X叉数值树”中相应数据,直接绘制曲线,其详细过程如图6所示。
通过“途径三”的实施方式:其总体流程图详见图3。
首先,在系统启动时根据设定常数和初始化基本数据变量,这些常数是最大索引位长、“X叉编码树”的分支数、绘图区域像素分辨率、绘图区域和实际绘图区域范围比例。如图13、16、17所示的是一些基本数据变量初始化形式。
如图10所示:在系统实时采集数据部分,该方法每获得一个采集数据时,就进行判断:如果采集数据计数值小于数据量上限数组第‘放缩总层次计数’个元素值,则不执行放缩总层次计数变量累加,否则执行放缩总层次计数变量累加。然后,将系统实时采集的外部数据同步存入“X叉编码树”的叶结点中,并按每X个数据为一组判断计算出其中的极大值、极小值及其编码,调用“X叉编码树”建树模块。“X叉编码树”建树模块通过判断比较变换,其相应结点存入所需的编码,其详细过程如图11所示。
每当用户用鼠标或键盘等工具对绘图区域曲线进行放大、缩小、移动等操作时,本发明方法获知这些消息,利用系统绘图区域比例设置信息,立刻重新计算确定曲线的原始采集数据在实际绘图区域的开始索引、终止索引及数据点总数,再计算出在“X叉编码树”中的对应层次、开始索引、终止索引。当绘图区域产生刷新事件时,循环读取“X叉编码树”中相应编码数据,通过“编码解调算法”将编码值转换为曲线的原始采集数据索引,绘制曲线,其详细过程如图6、图12所示。
虽然上面对于本发明的描述是相对于说明性的实施例的,但是这个描述并不局限于此。熟悉本行的人看了上述说明之后将会明白对本实施例的各种改变以及其它一些实施例。因此,可以预料,附加的权利要求将包括属于本发明范围的上述这种修改和实施例。
Claims (10)
1.一种针对设备或软件系统的曲线绘制方法,具体地讲就是在设备或软件系统读入外部长时间实时采集的信号数据的过程中,或在读入大容量静态数据的过程中,分别通过途径一:同步建立数据的索引树;或途径二:同步建立数据的数值树;或途径三:同步建立数据的编码树,在显示终端上独立实现动态或静态快速绘制数据曲线的方法。
2.如权力要求1所述的方法,通过途径一方式,其特征在于下述步骤:
(a)在设备或软件系统开始采集数据之前,完成数据建模;
(b)对设备或软件系统实时采集的数据同步预处理;
(c)使用(b)步产生的信息同步建立采集数据的索引树;
(d)当绘图区域比例发生变化时,确定实际绘图区域内曲线的采集数据在索引树中的映射位置;
(e)当绘图区域产生刷新事件时,循环读取并执行“索引分迭解调算法”变换索引树中映射位置数据,绘制曲线;
3.如权力要求2所述的方法,其特征在于步骤(c)进一步包括下列步骤:
(c1)执行“索引分迭调制算法”;
(c2)当前层变量累加;
(c3)当前层结点数变量累加;
(c4)将当前极大、极小值相对索引添加进当前层所属链表;
(c5)如果当前层结点数是索引树的分支数的整数倍,就生成当前层父结点极大、极小值相对索引,否则刷新当前层历史极大、极小值相对索引以及循环逻辑条件赋值为假;
(c6)如果循环逻辑条件为假就退出索引树建树子程序。否则回到(c1)步;
4.如权力要求2所述的方法,其特征在于步骤(d)进一步包括下列步骤:
(d1)确定实际绘图区域内曲线的原始采集数据开始索引和终止索引;
(d2)确定实际绘图区域内曲线容纳的原始采集数据总量;
(d3)确定实际绘图区域内绘制曲线的采集数据在索引树中对应显示层次;
(d4)确定索引树中对应显示层次数据开始索引和终止索引;
(d5)确定按迭分剩余层数和迭次;
(d6)确定实际绘图区域内曲线数据在屏幕物理坐标系中时间方向曲线绘制像素开始坐标和步进增量:
5.如权力要求1所述的方法,通过途径二方式,其特征在于下述步骤:
(a)在设备或软件系统开始采集数据之前,完成数据建模;
(b)对设备或软件系统实时采集的数据同步预处理:
(c)使用(b)步产生的信息同步建立采集数据的数值树;
(d)当绘图区域比例发生变化时,确定实际绘图区域内曲线的采集数据在数值树中的映射位置;
(e)当绘图区域产生刷新事件时,循环读取数值树中映射位置数据,绘制曲线;
6.如权力要求5所述的方法,其特征在于步骤(c)进一步包括下列步骤:
(c1)当前层变量累加;
(c2)当前层结点数变量累加;
(c3)将当前极大、极小值添加进当前层所属链表;
(c4)如果当前层结点数是数值树的分支数的整数倍,就生成当前层父结点极大、极小值,否则刷新当前层历史极大、极小值以及循环逻辑条件赋值为假;
(c5)如果循环逻辑条件为假就退出数值树建树子程序。否则回到(c1)步;
7.如权力要求5所述的方法,其特征在于步骤(d)进一步包括下列步骤:
(d1)确定实际绘图区域内曲线的原始采集数据开始索引和终止索引;
(d2)确定实际绘图区域内曲线容纳的原始采集数据总量;
(d3)确定实际绘图区域内绘制曲线的采集数据在数值树中对应显示层次;
(d4)确定数值树中对应显示层次数据开始索引和终止索引;
(d5)确定实际绘图区域内曲线数据在屏幕物理坐标系中时间方向曲线绘制像素开始坐标和步进增量;
8.如权力要求1所述的方法,通过途径三方式,其特征在于下述步骤:
(a)在设备或软件系统开始采集数据之前,完成数据建模;
(b)对设备或软件系统实时采集的数据同步预处理;
(c)使用(b)步产生的信息同步建立采集数据的编码树;
(d)当绘图区域比例发生变化时,确定实际绘图区域内曲线的采集数据在编码树中的映射位置;
(e)当绘图区域产生刷新事件时,循环读取并执行“编码解调算法”变换编码树中映射位置数据,绘制曲线;
9.如权力要求8所述的方法,其特征在于步骤(c)进一步包括下列步骤:
(c1)当前层变量累加;
(c2)当前层结点数变量累加;
(c3)将当前极大、极小值编码添加进当前层所属链表;
(c4)如果当前层结点数是编码树的分支数的整数倍,就生成当前层父结点极大、极小值编码,否则刷新当前层历史极大、极小值编码以及循环逻辑条件赋值为假;
(c5)如果循环逻辑条件为假就退出编码树建树子程序。否则回到(c1)步;
10.如权力要求8所述的方法,其特征在于步骤(d)进一步包括下列步骤:
(d1)确定实际绘图区域内曲线的原始采集数据开始索引和终止索引;
(d2)确定实际绘图区域内曲线容纳的原始采集数据总量;
(d3)确定实际绘图区域内绘制曲线的采集数据在编码树中对应显示层次;
(d4)确定编码树中对应显示层次数据开始索引和终止索引;
(d5)确定实际绘图区域内曲线数据在屏幕物理坐标系中时间方向曲线绘制像素开始坐标和步进增量;
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810017421XA CN101221665A (zh) | 2008-01-29 | 2008-01-29 | 利用索引树或数值树或编码树快速绘制曲线的方法 |
PCT/CN2008/001953 WO2009094822A1 (fr) | 2008-01-29 | 2008-12-01 | Procédé de tracé de courbes utilisant un arbre d'indices, un arbre de valeurs numériques et un arbre de codage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810017421XA CN101221665A (zh) | 2008-01-29 | 2008-01-29 | 利用索引树或数值树或编码树快速绘制曲线的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101221665A true CN101221665A (zh) | 2008-07-16 |
Family
ID=39631480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200810017421XA Pending CN101221665A (zh) | 2008-01-29 | 2008-01-29 | 利用索引树或数值树或编码树快速绘制曲线的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101221665A (zh) |
WO (1) | WO2009094822A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009094822A1 (fr) * | 2008-01-29 | 2009-08-06 | Zhou Zhan | Procédé de tracé de courbes utilisant un arbre d'indices, un arbre de valeurs numériques et un arbre de codage |
CN102360287A (zh) * | 2011-09-28 | 2012-02-22 | 中国航天科工集团第四研究院第四总体设计部 | 一种用于高速实时仿真的曲线绘制方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2651399B1 (fr) * | 1989-08-29 | 1996-05-15 | Thomson Consumer Electronics | Procede et dispositif d'estimation et de codage hierarchise du mouvement de sequences d'images. |
US6188797B1 (en) * | 1997-05-27 | 2001-02-13 | Apple Computer, Inc. | Decoder for programmable variable length data |
CN100454341C (zh) * | 2006-09-26 | 2009-01-21 | 杭州镭星科技有限公司 | 一种基于分形层次树的过程式地形快速绘制方法 |
CN101221665A (zh) * | 2008-01-29 | 2008-07-16 | 周崭 | 利用索引树或数值树或编码树快速绘制曲线的方法 |
-
2008
- 2008-01-29 CN CNA200810017421XA patent/CN101221665A/zh active Pending
- 2008-12-01 WO PCT/CN2008/001953 patent/WO2009094822A1/zh active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009094822A1 (fr) * | 2008-01-29 | 2009-08-06 | Zhou Zhan | Procédé de tracé de courbes utilisant un arbre d'indices, un arbre de valeurs numériques et un arbre de codage |
CN102360287A (zh) * | 2011-09-28 | 2012-02-22 | 中国航天科工集团第四研究院第四总体设计部 | 一种用于高速实时仿真的曲线绘制方法 |
CN102360287B (zh) * | 2011-09-28 | 2013-11-13 | 中国航天科工集团第四研究院第四总体设计部 | 一种用于高速实时仿真的曲线绘制方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2009094822A1 (fr) | 2009-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Stockinger et al. | Query-driven visualization of large data sets | |
CN105868019B (zh) | 一种Spark平台性能自动优化方法 | |
Hjaltason et al. | Speeding up construction of PMR quadtree-based spatial indexes | |
Silva et al. | Out-of-core algorithms for scientific visualization and computer graphics | |
CN102306180B (zh) | 一种基于海量激光雷达栅格点云数据的建模方法 | |
US5852826A (en) | Parallel merge sort method and apparatus | |
US8005992B1 (en) | Scalable storage and retrieval of multiple asynchronous signals | |
CN105608222A (zh) | 一种大规模栅格数据集的瓦片金字塔快速构建方法 | |
CN101833780B (zh) | 一种基于游程表达和运算的地图成图方法 | |
Kumar et al. | Efficient data restructuring and aggregation for I/O acceleration in PIDX | |
CN113535788A (zh) | 一种面向海洋环境数据的检索方法、系统、设备及介质 | |
CN110705716A (zh) | 一种多模型并行训练方法 | |
US6081624A (en) | Spatial index compression through spatial subdivision encoding | |
Bendre et al. | Faster, higher, stronger: Redesigning spreadsheets for scale | |
CN114357311A (zh) | 一种基于社区发现与聚类优化的力导向图布局方法 | |
CN101221665A (zh) | 利用索引树或数值树或编码树快速绘制曲线的方法 | |
CN106599172A (zh) | 一种海量数据的无损保真可视化优化法 | |
CN111427887A (zh) | 一种快速扫描HBase分区表的方法、装置、系统 | |
CN110349635A (zh) | 一种基因测序数据质量分数的并行压缩方法 | |
Chiang et al. | Out-of-core algorithms for scientific visualization and computer graphics | |
CN105786948A (zh) | 一种基于gpu的olap系统 | |
CN113407537B (zh) | 数据处理方法、装置及电子设备 | |
CN103218210B (zh) | 适于大数据高并发访问的文件级分条系统 | |
CN115168601A (zh) | 一种针对时序知识图谱的可视化分析系统和方法 | |
CN110019432A (zh) | 针对读者行为信息的海量数据分析及可视化系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080716 |