TChart大量資料的圖形繪製 |
尚未結案
|
king5201
一般會員 發表:16 回覆:10 積分:5 註冊:2009-12-21 發送簡訊給我 |
|
dueseven
一般會員 發表:5 回覆:9 積分:7 註冊:2007-05-18 發送簡訊給我 |
之前曾經在這裏問過類似的問題,
後來在實作的時候, 真的也不得不做資料刪減的動作, 而且,一次要把千萬筆資料畫出來, 也真的是一件很不明智的動作, 畢竟,我們眼睛也看不到少幾筆資料的這回事。 我實作的演算法是這樣的, A. 當要顯示的資料個數大於5000筆時: 1) 單一個 Series 最多只顯示 5000 筆資料 (5000*3點) 2) 若有 20000000 筆資料要顯示,則把資料分成5000個group,每個group中有 20000000 / 5000 = 4000 筆資料。 3) 對這5000個group,取"最小值"、"平均值"、"最大值",依序填入 5000*3 的 array 空間。 B. 待顯示的資料小於5000筆時:直接顯示 (情況發生在可能需要 zoom in 的時候)。 這樣的作法,可以讓所有的 peak 與 null 都能完全地顯示出來,當有需要詳細的資訊時,zoom in 進去看時,也不會lost data.... |
Victor4022
中階會員 發表:0 回覆:76 積分:90 註冊:2011-02-20 發送簡訊給我 |
|
無故障
一般會員 發表:17 回覆:69 積分:17 註冊:2004-03-11 發送簡訊給我 |
[code cpp]
bool __fastcall TfrmMain_TaiTea::SerLine000BeforeAdd(TChartSeries *Sender) { if (SerLine000->LastValueIndex >= 1000) { SerLine000->Delete(0) ; //刪除第0點資料 }; return true; } //--------------------------------------------------------------------------- [/code] 此為限制顯示筆數
------
嘿嘿嘿 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |