111,130
社区成员
发帖
与我相关
我的任务
分享private int[] val;//Chart 值数组
private int currentValue = 0;//当前值
private int w, h;//画布大小 宽度和高度
private Timer tmrRefresh;//定时器
private Pen penChart = new Pen(Color.Lime);//波形颜色
private Graphics graph;//实例化画图类
//私有方法:绘制图形
private void DrawChart(ref Graphics g, Pen p, ref int[] val)
{ //从 w到 0绘制
int len = w;//w是实际的长度
len--; //从w-1开始画
for (int i = 0; i < len; i++)//i的值同时也代表着进来的数据
{ g.DrawLine(p,w-i,h-val[i],w-i+1,h-val[i+1]);
len++;
g.DrawLine(p, len - 1, h - val[len - 2], len, h - val[len - 1]);
}
}
//绘图
protected override void OnPaint(PaintEventArgs e)
{
graph = e.Graphics;
DrawChart(ref graph, penChart, ref val);
}
//定时器更新
private void tmrRefresh_Tick(object sender, EventArgs e)
{
int len = w;
for (int i = 0; i < len; i++)
{ if (i < len - 1)
{ val[i] = val[i + 1];
}
else
{
val[len - 1] = currentValue;
}
}
Invalidate();for (int i = 0; i < len; i++)
{ if (i < len - 1)
{ val[i] = val[i + 1];
}
else
{
val[len - 1] = currentValue;
}主要是这段,看不明白啊,谁给解解惑啊!