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;
}主要是这段,看不明白啊,谁给解解惑啊!
}
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;
}主要是这段,看不明白啊,谁给解解惑啊!
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货