專利名稱:利用索引樹或數值樹或編碼樹快速繪制曲線的方法
技術領域:
本發明是一種針對設備或軟件系統的曲線繪制方法,具體地講就是在設備 或軟件系統讀入外部長時間實時采集的信號數據的過程中,或在讀入大容量靜 態數據的過程中,同步建立數據的索引樹或數值樹或編碼樹,并利用它們在顯 示終端上獨立實現動態或靜態快速繪制數據曲線的方法。
技術背景在這里定義編輯曲線是指用鼠標、鍵盤等操作工具對顯示終端上的曲線 進行諸如放大、縮小、平移、捕捉等操作。在這里定義計算機效率低是指諸 如曲線繪制延遲、實時繪制曲線達不到同步顯示、編輯曲線將會非常慢、屏幕 繪制曲線會閃爍、計算機甚至會卡死等情形。在這里將設備或軟件系統讀入外 部長吋間實時采集信號數據的過程,簡稱為采集數據或采集外部數據,這種過 程中可以對數據進行一定的處理。這里所說的曲線繪制也可以采用點、矩形等 其它形式出現。目前,計算機繪制曲線的方法主要有這幾種方法第一種在顯示終端上,每次不管是全部還是部分地顯示曲線,計算機對 所有繪圖數據都從頭到尾循環執行一次屏幕畫線命令。這種方法的優點是程序 執行語句控制流程簡單明了,沒有增加額外的輔助數據,因而占用較小的內存。 假設n是全體繪圖數據總數。缺點是每次計算機C PU需要在內存執行一個n 次的循環計算,同時在屏幕上執行n次畫線命令,花費較多的時間。這種方法一般用在繪圖數據量較小的場合。當繪圖數據量很大時,計算機效率將會很低。 第二種.采用雙緩沖技術繪制曲線圖。雙緩沖即在內存中創建一個與屏幕 繪圖區域一致的對象,先將圖形繪制到內存中的這個對象上,再一次性將這個對象上的圖形拷貝到屏幕上。假設n是全體繪圖數據總數。這種方法的優點是 每次計算機C PU在內存執行一個n次的循環畫線,但只需在屏幕上執行一次 圖形拷貝, 一次圖形拷貝的時間很短,不會隨繪圖數據的增加而變化,是固定 值,對比第一種方法,這樣能大大加快繪圖的速度。雖然該方法在內存中創建 一個與屏幕繪圖區域一致的對象,其所占用的內存量影響不大,但其主要缺點 是由于該方法還需要計算機C PU每次在內存繪圖對象上執行一個n次的循 環畫線,當繪圖數據量n越來越大時,特別是當全部繪圖曲線顯示在屏幕上時, 計算機效率還將會很低。第三種在顯示終端上,規定只顯示固定繪圖數據個數的繪圖數據曲線。 這種方法的優點是計算機C PU每次在內存執行一個常數次級別的循環計算, 并同時在屏幕上執行常數次畫線命令。由于固定繪圖數據個數是一個可以控制 的常數,所以選取合適的值可以滿足需要,可以避免出現計算機效率低下的現 象。這種方法的缺點是由于繪圖數據個數是一個固定值,在實時狀態下,根 據計算機的性能不能設置的很大,所以在顯示終端上編輯曲線時,只能看到最 多固定個數據的繪圖曲線,而不能編輯超出固定個數據的繪圖曲線。也就是說, 在屏幕上不能實時地、整體地觀察、分析全部繪圖數據曲線。 發明內容針對上面的描述,本發明的一個目的就是建立一種計算機曲線快速繪制方 法,來避免上面所述缺點情況的出現,從而提高了計算機效率。本發明方法原理是我們知道,計算機顯示終端的特性之一就是屏幕分辨 率, 一般標記為屏幕像素寬度X屏幕像素高度。諸如800X600像素、1024X 768像素、1280X1024像素等等,這里稱為屏幕物理坐標系。而我們通過計算 機來繪圖時,總是要先在用戶坐標系中來繪圖,用戶坐標系是用戶定義原始圖 形時所用的坐標系,如直角坐標系、極坐標系等。由于屏幕最大分辨率都是固 定的,所以屏幕物理坐標系不能隨意設定比例,而用戶坐標系可以隨意設定比 例,這樣,要將用戶坐標系中繪制的圖形顯示在屏幕物理坐標系上,就必須通 過用戶坐標系和物理坐標系之間的轉換來實現。當計算機長時間快速采集外部 實時數據并需要將其全部繪制到用戶坐標系上時,其時間方向坐標范圍將會變 得越來越大,通過坐標比例變換,將其全部顯示到物理坐標系繪圖屏幕上,繪 圖數據將會越來越密,就會出現多個連續數據的時間方向用戶坐標值轉換重合 成一個時間方向物理坐標像素位置,而這多個連續數據值的變化方向坐標圖形 繪制只能看到其中極大值和極小值兩個坐標的位置,變化方向其它坐標值都被 覆蓋。也就是說當前在用戶坐標系里每多個連續數據只需執行一次極大值和極 小值之間線段繪制命令,就可以完成屏幕物理坐標系上對應一個像素位置的圖 形繪制,而不必在每個像素位置上都執行多次線段繪制命令。而且隨著時間的 推移,實時采集數據會越來越多,用戶坐標系時間方向坐標范圍會越來越大, 這多個數據個數也會逐漸變大,面對這種情況,我們通過對實時采集數據同步 預處理,采用樹這種數據結構來同步存儲不同比例下需要繪制曲線的采集數據 索引值或實際值或編碼值,樹中葉子層存儲原始采集數據,其它不同層次的結點對應存儲不同比例下所需的繪圖數據信息。當需要重繪曲線時,我們通過重 定位技術,找到當前比例狀態下所需要繪制曲線的原始采集數據在樹中的對應位置,經過變換迅速繪制曲線。例如對于2叉樹來說,當"實際繪圖區域原始 繪圖數據個數"小于"實際繪圖區域時間方向像素寬度乘以2"時,就采用2叉 樹最深層葉子結點的信息(原始數據)來繪圖;當"實際繪圖區域原始繪圖數 據個數"不小于"實際繪圖區域時間方向像素寬度乘以2"又小于"實際繪圖區 域時間方向像素寬度乘以4"時,就采用2叉樹次深層結點的信息來繪圖;當"實 際繪圖區域原始繪圖數據個數"不小于"實際繪圖區域時間方向像素寬度乘以4" 又小于"實際繪圖區域時間方向像素寬度乘以8"時,就采用次次深層結點的信 息來繪圖;……;依此類推,當"實際繪圖區域原始繪圖數據個數"不小于"實 際繪圖區域時間方向像素寬度乘以2的n次方"又小于"實際繪圖區域時間方 向像素寬度乘以2的n+l次方"時,就采用第(樹高-n)層結點的信息來繪圖 (0《整數iK樹高)。同樣道理適合于任意叉樹形式。每當用戶坐標系比例發 生變化,通過計算和判斷可以立刻找到樹中對應層次的結點信息。當繪圖區域 產生刷新事件時,可以以小于固定的循環次數上限循環快速繪圖。例如對于 2叉樹來說,其固定的循環次數上限等于實際繪圖區域像素分辨率的兩倍。由 于曲線重繪時對時間的消耗位于一個較小的固定的上限值之下,而計算機采集 數據時同時建立信息樹數據結構所花費的時間也限定在小的限度之內,使計算 機CPU占有率維持在較低的水平,而計算機的內存可以滿足長時間建立信息樹 所需的存儲空間,從而實現屏幕上的長時間實時曲線編輯功能。在更深入講述 之前,預先定義了一些本文中將要用到的一些名詞和規則如下位長M:這里定義M為計算機系統中某種無符號整型數據類型的位長度。 例如M= 8 ( 1個字節)、M= 1 6 ( 2個字節)、M= 3 2 ( 4個字節)、M =64(8個字節)、M= 1 2 8 (16個字節)等。最大位長L:所有位長M可能取值中的最大值。在當前計算機系統中一般 設置L = 3 2 。隨著計算機性能的提高,L的取值可能為6 4、 128、 25 6等。字模K:這里定義字模K等于某種位長M的無符號整型數據類型變量所能 表示的最大值。針對不同的M, 一一對應不同的K。這里定義K等于2的M次 方。例如M= 8時,K= 2 5 6 ; M= 1 6時,K= 6 5 5 3 6等。迭模S:這里定義迭模S等于^X叉樹分支數X'的以當前迭高為下標的乘方模數組值。具體解釋詳見圖14和圖16。規則l:對于任意一個非負整數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叉索引子樹"的葉子順序存儲外部生 成的數據,每采集到l個數據,就按一種或幾種性質進行判斷處理(如尋找 其中的極大值和極小值或尋找其中的極大值索引和極小值索引),當采集到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叉索引樹"來說,當又=2并且結點索引位長=最大索引位長時,在"X叉索引樹"中其顯示效果和繪圖速度效率最高,但相對占用較多的內存。通過途徑二方式說明其總體流程圖詳見圖2。首先,在設備或軟件系統 初始化時,我們也初始化一些必要的變量,比較特殊的變量初始化過程詳見圖 13、圖16、圖17。其次,在設備或軟件系統開始實時采集數據時,對這些數據 同步進行預處理(詳見圖8)。然后,我們采用一種類似二維數組形式的多重鏈 表數據結構來同步建立"X叉數值樹"。每重鏈表的每個數據單元存儲原始數據. 的符合條件(如極大值和極小值)的實際值。這里所說的"X,叉數值樹"是這樣一種形式對于其每一個結點(不含葉 子)僅存儲原始數據的符合條件(如極大值和極小值)的實際值。最深層的每 個葉子順序存儲外部采集數據實際值,每采集到l個數據,就按一種或幾種性 質進行判斷處理(如尋找其中的極大值和極小值),當采集到X個數據,系統 就調用"X叉數值樹"建樹模塊,然后系統重復進行下X個數據的處理。在建 樹模塊里,系統就建立一個該X個數據的父結點,父結點存儲該X個數據中符合條件(如極大值和極小值)的數據實際值。同樣,所建立的同一級父結點也 順序按X個結點進行類似處理,即每建立起X個父結點,系統就建立一個該X 個父結點的父父結點,父父結點存儲該X個父結點中符合條件(如極大值和極 小值)的數據實際值,然后系統繼續進行下X個父結點的相同處理。同樣,按 迭代方式,各級祖先結點也同步在同一級內遞推進行類似的處理過程,這樣就 建立起一個"X叉數值樹",其通用建樹算法詳見附圖9。在"X叉數值樹"中, 當X-2時,其建樹算法可以簡化,從而節省時間。當繪圖區域比例發生變化時,本發明方法立刻重新確定實際繪圖區域曲線 的原始采集數據在"X叉數值樹"中的映射位置,包括層次、開始索引、終止 索引。當繪圖區域產生刷新事件時,本發明方法循環讀取"X叉數值樹"中映 射位置實際數據,直接繪制曲線。ar蘋途徑三方式說明其總體流程圖詳見圖3。在設備或軟件系統初始化 時,我i]也初始化一些必要的變量,比較特殊的變量初始化過程詳見圖13、圖 16、圖17。其次,在設備或軟件系統開始實時采集數據時,對這些數據同步進 行預處理(詳見圖1 0 )。然后,我們采用一種類似二維數組形式的多重鏈表數 據結構來同步建立"X叉編碼樹"。我們這里所說的"X叉編碼樹"是這樣一種 形式"X叉編碼樹"的葉子順序存儲外部采集的數據,每采集到l個數據,就 按一種或幾種性質進行判斷處理(如尋找其中的極大值和極小值),對滿足條 件的數據的絕對索引按諸如"規則2"等方式轉換為相對編碼。當采集到X個 數據,系統就調用"X叉編碼樹"建樹模塊,然后系統重復進行下X個數據的 處理。在建樹模塊里,系統就建立一個該X個數據的父結點,父結點存儲該X 個數據中符合條件(如極大值和極小值)的數據相對編碼。同時父結點采用自 己在父結點這一層的順序計數進行諸如"規則2"等方式的相對編碼處理,當 處理到X個父結點時就創建其父父結點,父父結點存儲符合條件的父結點的相 對編碼值(例如找出X個父結點中含有極大值相對編碼和極小值相對編碼的 父結點相對編碼)。同理,父父結點也進行類似的相對編碼處理。……,依次迭 代類推,各級祖先結點也同步在同一級內進行類似的處理過程,這樣就創建了 "X叉編碼樹",其通用建樹算法詳見附圖ll。在"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叉數值樹"建樹算法具體流程圖; 圖1 0 :通用"X叉編碼樹"采集數據預處理算法具體流程圖; 圖1 1 :通用"X叉編碼樹"建樹算法具體流程圖; 圖1 2 :"編碼解調算法"具體流程圖;圖l 3:確定X叉樹的總層次和采集數據計數溢出值算法具體流程圖; 圖l 4:計算確定"X叉索引樹"中迭高及總迭次具體流程圖; 圖l 5:給'迭高界限值'數組賦值算法具體流程圖; 圖l 6:在X叉樹中,對X的乘方模數組賦值算法具體流程圖; 圖17:在X叉樹中,對數據量上限數組賦值算法具體流程圖;
具體實施例方式下面我們參考附圖,對本發明的實施例進行詳盡的說明。 通過"途徑一"的實施方式其總體流程圖詳見圖1。首先,在系統啟動時根據設定常數和初始化基本數據變量,這些常數是最 大索引位長、"X叉索引樹"的分支數、結點索引位長、繪圖區域像素分辨率、 繪圖區域和實際繪圖區域范圍比例。如圖13、 14、 15、 16、 17所示的是一些基 本數據變量初始化形式。如圖4所示在系統實時采集數據部分,該方法每獲得一個采集數據時, 就進行判斷如果采集數據計數值小于數據量上限數組第'放縮總層次計數' 個元素值,則不執行放縮總層次計數變量累加,否則執行放縮總層次計數變量 累加。然后,將系統實時采集的外部數據同步存入"X叉索引樹"的葉結點中, 并按每X個數據為一組找出其中的極大值、極小值及其絕對索引,調用"X叉 索引樹"建樹模塊。"X叉索引樹"建樹模塊采用"索引分迭調制算法",將極 大和極小值的絕對索引變換為相對索引,通過判斷計算變換,其相應結點存入所需相對索引,其詳細過程如圖5、圖5-l所示。每當用戶用鼠標或鍵盤等工具對繪圖區域曲線進行放大、縮小、移動等操 作時,本發明方法獲知這些消息,利用系統繪圖區域比例設置信息,立刻重新 計算確定曲線的原始采集數據在實際繪圖區域的開始索引、終止索引及數據點總數,再計算出在"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所示。雖然上面對于本發明的描述是相對于說明性的實施例的,但是這個描述并 不局限于此。熟悉本行的人看了上述說明之后將會明白對本實施例的各種改變 以及其它一些實施例。因此,可以預料,附加的權利要求將包括屬于本發明范 圍的上述這種修改和實施例。
權利要求
1.一種針對設備或軟件系統的曲線繪制方法,具體地講就是在設備或軟件系統讀入外部長時間實時采集的信號數據的過程中,或在讀入大容量靜態數據的過程中,分別通過途徑一同步建立數據的索引樹;或途徑二同步建立數據的數值樹;或途徑三同步建立數據的編碼樹,在顯示終端上獨立實現動態或靜態快速繪制數據曲線的方法。
2. 如權利要求l所述的方法,通過途徑一方式,其特征在于下述步驟 (a )在設備或軟件系統開始采集數據之前,完成數據建模;(b )對設備或軟件系統實時采集的數據同步預處理;(C )使用(b )步產生的信息同步建立采集數據的索引樹;(d)當繪圖區域比例發生變化時,確定實際繪圖區域內曲線的采集數據在索引樹中的映射位置;(e )當繪圖區域產生刷新事件時,循環讀取并執行"索引分迭解調算法"變換索引樹中映射位置數據,繪制曲線。
3. 如權利要求2所述的方法,其特征在于步驟(C )進一步包括下列步驟(C 1 )執行"索引分迭調制算法";(C 2 )當前層變量累加; -(C 3 )當前層結點數變量累加;(C 4 )將當前極大、極小值相對索引添加進當前層所屬鏈表;(c 5 )如果當前層結點數是索引樹的分支數的整數倍,就生成當前層父結點極大、極小值相對索引,否則刷新當前層歷史極大、極小值相對索引以及循環邏輯條件賦值為假;(c 6)如果循環邏輯條件為假就退出索引樹建樹子程序。否則回到(c 1 )步。
4. 如權利要求2所述的方法,其特征在于步驟(d )進一步包括下列步驟 (d1)確定實際繪圖區域內曲線的原始采集數據開始索引和終止索引;(d 2 )確定實際繪圖區域內曲線容納的原始采集數據總量;(d 3)確定實際繪圖區域內繪制曲線的采集數據在索引樹中對應顯示層次;(d 4)確定索引樹中對應顯示層次數據開始索引和終止索引;(d 5 )確定按迭分剩余層數和迭次;(d 6)確定實際繪圖區域內曲線數據在屏幕物理坐標系中時間方向曲線 繪制i素開始坐標和步進增量。
5. 如權.利要求1所述的方法,通過途徑二方式,其特征在于下述步驟 (a)在設備或軟件系統開始采集數據之前,完成數據建模;(b )對設備或軟件系統實時采集的數據同步預處理;(C )使用(b )步產生的信息同步建立采集數據的數值樹;(d) 當繪圖區域比例發生變化時,確定實際繪圖區域內曲線的采集數據在 數值樹中的映射位置;(e) 當繪圖區域產生刷新事件時,循環讀取數值樹中映射位置數據,繪制曲線。
6. 如權利要求5所述的方法,其特征在于步驟(C )進一步包括下列步驟 (C 1 )當前層變量累加;(C 2 )當前層結點數變量累加;(C 3 )將當前極大、極小值添加進當前層所屬鏈表;(C 4 )如果當前層結點數是數值樹的分支數的整數倍,就生成當前層父 結點極大、極小值,否則刷新當前層歷史極大、極小值以及循環邏輯條件賦值 為假;(c 5)如果循環邏輯條件為假就退出數值樹建樹子程序。否則回到(c 1 )步。
7. 如權利要求5所述的方法,其特征在于步驟(d )進一步包括下列步驟(d1)確定實際繪圖區域內曲線的原始采集數據開始索引和終止索引;(d 2)確定實際繪圖區域內曲線容納的原始采集數據總量;(d 3)確定實際繪圖區域內繪制曲線的采集數據在數值樹中對應顯示層次;(d 4)確定數值樹中對應顯示層次數據開始索引和終止索引;(d 5)確定實際繪圖區域內曲線數據在屏幕物理坐標系中時間方向曲線 繪制像素開始坐標和步進增量。
8. 如權利要求1所述的方法,通過途徑三方式,其特征在于下述步驟-(a) 在設備或軟件系統開始采集數據之前,完成數據建模;(b) 對設備或軟件系統實時采集的數據同步預處理;(C )使用(b)步產生的信息同步建立采集數據的編碼樹;(d) 當繪圖區域比例發生變化時,確定實際繪圖區域內曲線的采集數據 在編碼樹中的映射位置;(e) 當繪圖區域產生刷新事件時,循環讀取并執行"編碼解調算法"變 換編碼樹中映射位置數據,繪制曲線。
9. 如權利要求8所述的方法,其特征在于步驟(c )進一步包括下列步驟: (C 1 )當前層變量累加;(C 2 )當前層結點數變量累加;(C 3 )將當前極大、極小值編碼添加進當前層所屬鏈表;(c 4)如果當前層結點數是編碼樹的分支數的整數倍,就生成當前層父結點極大、極小值編碼,否則刷新當前層歷史極大、極小值編碼以及循環邏輯條件賦值為假;(c 5 )如果循環邏輯條件為假就退出編碼樹建樹子程序。否則回到(c 1 )步。
10. 如權利要求8所述的方法,其特征在于步驟(d )進一步包括下列步驟 (d 1 )確定實際繪圖區域內曲線的原始采集數據開始索引和終止索引;(d 2)確定實際繪圖區域內曲線容納的原始采集數據總量;(d 3)確定實際繪圖區域內繪制曲線的采集數據在編碼樹中對應顯示層次;(d 4 )確定編碼樹中對應顯示層次數據開始索引和終止索引; (d 5)確定實際繪圖區域內曲線數據在屏幕物理坐標系中時間方向曲線 繪制像素開始坐標和步進增量。
全文摘要
本發明是一種針對設備或軟件系統的曲線繪制方法,具體地講就是在設備或軟件系統讀入外部長時間實時采集的信號數據的過程中,或在讀入大容量靜態數據的過程中,同步建立數據的索引樹或數值樹或編碼樹,并利用它們在顯示終端上獨立實現動態或靜態快速繪制數據曲線的方法。
文檔編號G06T11/60GK101221665SQ20081001742
公開日2008年7月16日 申請日期2008年1月29日 優先權日2008年1月29日
發明者嶄 周 申請人:嶄 周