VS2005+ZedGraph 5.1.5 Winform我用下面的方法加了两条参考线 private PointPairList lstStart1 = new PointPairList();
private PointPairList lstStart2 = new PointPairList();
private void draw()
{
lstStart1.Add(5.00, 2.0);
lstStart1.Add(9.00, 2.0);
lstStart1.Add(9.00, 1.0);
myCurve1 = myPane.AddCurve("Min", lstStart1, Color.Red, SymbolType.None); lstStart2.Add(5.00, 2.60);
lstStart2.Add(9.00, 2.60);
myCurve2 = myPane.AddCurve("Max", lstStart2, Color.Yellow, SymbolType.None);
}然后我用一个循环继续往图表里画线 if (i <= 36)
{
double x = i;
double y = 1.5 + Math.Sin(i * 0.2);
y = Math.Round(y, 3);
list1.Add(x, y); myCurve = myPane.AddCurve("", list1, Color.White, SymbolType.None);
zedGraphControl1.GraphPane = myPane;
zedGraphControl1.AxisChange();
zedGraphControl1.Refresh();
Application.DoEvents();
}问题如下:如果我最后不加myPane.CurveList.Clear();这句的话,绘制曲线会越来越慢(一个循环10毫秒),所以我想达到的要求是,当循环绘制的曲线超过10条的时候,清除最早的一条,也就是说图中只保留最新的10条曲线,但不能清除事先画好的参考线(清除了,重画也可以,但不能把所有曲线都一次清除了,要保留最新的10条)
private PointPairList lstStart2 = new PointPairList();
private void draw()
{
lstStart1.Add(5.00, 2.0);
lstStart1.Add(9.00, 2.0);
lstStart1.Add(9.00, 1.0);
myCurve1 = myPane.AddCurve("Min", lstStart1, Color.Red, SymbolType.None); lstStart2.Add(5.00, 2.60);
lstStart2.Add(9.00, 2.60);
myCurve2 = myPane.AddCurve("Max", lstStart2, Color.Yellow, SymbolType.None);
}然后我用一个循环继续往图表里画线 if (i <= 36)
{
double x = i;
double y = 1.5 + Math.Sin(i * 0.2);
y = Math.Round(y, 3);
list1.Add(x, y); myCurve = myPane.AddCurve("", list1, Color.White, SymbolType.None);
zedGraphControl1.GraphPane = myPane;
zedGraphControl1.AxisChange();
zedGraphControl1.Refresh();
Application.DoEvents();
}问题如下:如果我最后不加myPane.CurveList.Clear();这句的话,绘制曲线会越来越慢(一个循环10毫秒),所以我想达到的要求是,当循环绘制的曲线超过10条的时候,清除最早的一条,也就是说图中只保留最新的10条曲线,但不能清除事先画好的参考线(清除了,重画也可以,但不能把所有曲线都一次清除了,要保留最新的10条)
zedGraphControl1.GraphPane.CurveList.Clear();
zedGraphControl1.AxisChange();
zedGraphControl1.GraphPane.CurveList.Clear();这样把所有的曲线都清空了。
zedGraphControl1.AxisChange();
看看zedgraph相关方法
http://zedgraph.sourceforge.net/documentation/html/T_ZedGraph_GraphObjList.htm