2012-10-04 83 views
0

我有一個方法返回圖表的PointPairList在時間t,但我想用它來繪製一個「移動」的圖形,通過「移動」我的意思是圖形應該在時間上演變,確實任何人有任何線索我如何能做到這一點。我嘗試使用RollingPointPairList的,但它不工作。演化圖ZedGraph

回答

1

你是什麼意思與進化?你是否想隨時間曲線添加點,或者改變曲線已經有的點的位置? 對於第一個選項,我使用了一個計時器和一個DrawPoint方法作爲處理程序,爲曲線添加一個點。第二種選擇可能會更復雜,我沒有試圖改變一個點的座標,但也許它是可能的......它是最壞的情況下,你將不得不刪除你的舊點並畫出新的點...無論如何這裏是一部分我的代碼添加一個點(實際上有很多點,因爲我有超過1條曲線工作)

tmr.Interval = 6; 
tmr.Tick += new EventHandler(tmr_Tick); 
tmrActive = true; 
tmr.Start(); 
void tmr_Tick(object sender, EventArgs e) 
{ 
    DrawPoint(zedGraphControl1, points, num); //points is an PointPair array of length num with the new points that i want to add to my Curves(1 point for each Curve)  
    zedGraphControl1.AxisChange(); 
    zedGraphControl1.Refresh(); 
    if (Start.Enabled == false) Freeze.Enabled = true; 
} 
private void DrawPoint(ZedGraphControl zgc, PointPair[] p, int num) 
    { 
     GraphPane myPane = zgc.GraphPane; 

     if (myPane.CurveList.Count < num) 
     { 
      DrawCurves(zgc, num); 
     } 
     for (int i = 0; i < num; i++) 
     { 
      myPane.CurveList[i].AddPoint(p[i]); 
     } 
     actPos = p[0].X; 
     mResize(zgc, actPos); 
    } 
+0

我說的是第二個選項,我設法通過使用定時事件和清除graphpane每次做我必須做一個新的情節。謝謝 – KillaKem