首页 技术 正文
技术 2022年11月15日
0 收藏 496 点赞 3,876 浏览 2099 个字

2010-10-17 11:23:58| 分类: ASP.NET |举报|字号 订阅
public partial class FrmMain : Form
{
// 起始时间以毫秒为单位
int tickStart = 0;

public FrmMain()
{
InitializeComponent();
this.timeDraw.Tick += new EventHandler(timeDraw_Tick);
}

private void FrmMain_Load(object sender, EventArgs e)
{
//获取引用
GraphPane myPane = zedGraphControl1.GraphPane;
//设置标题
myPane.Title.Text = “实时曲线”;
//设置X轴说明文字
myPane.XAxis.Title.Text = “时间”;
//设置Y轴说明文字
myPane.YAxis.Title.Text = “温度”;

//设置1200个点,假设每50毫秒更新一次,刚好检测1分钟,一旦构造后将不能更改这个值
RollingPointPairList list = new RollingPointPairList(1200);

//开始,增加的线是没有数据点的(也就是list为空)
//增加一条名称:Voltage,颜色Color.Bule,无符号,无数据的空线条
LineItem curve = myPane.AddCurve(“温度”, list, Color.Blue, SymbolType.None);

timeDraw.Interval = 50; //设置timer控件的间隔为50毫秒
timeDraw.Enabled = true; //timer可用
timeDraw.Start(); //开始

myPane.XAxis.Scale.Min = 0; //X轴最小值0
myPane.XAxis.Scale.Max = 30; //X轴最大30
myPane.XAxis.Scale.MinorStep = 1;//X轴小步长1,也就是小间隔
myPane.XAxis.Scale.MajorStep = 5;//X轴大步长为5,也就是显示文字的大间隔

//改变轴的刻度
zedGraphControl1.AxisChange();

//保存开始时间
tickStart = Environment.TickCount;
}

private void timeDraw_Tick(object sender, EventArgs e)
{
//确保CurveList不为空
if (zedGraphControl1.GraphPane.CurveList.Count <= 0)
{
return;
}

//取Graph第一个曲线,也就是第一步:在GraphPane.CurveList集合中查找CurveItem
LineItem curve = zedGraphControl1.GraphPane.CurveList[0] as LineItem;
if (curve == null)
{
return;
}

//第二步:在CurveItem中访问PointPairList(或者其它的IPointList),根据自己的需要增加新数据或修改已存在的数据
IPointListEdit list = curve.Points as IPointListEdit;

if (list == null)
{
return;
}

// 时间用秒表示
double time = (Environment.TickCount – tickStart) / 1000.0;
// 3秒循环
list.Add(time, Math.Sin(2.0 * Math.PI * time / 3.0));
Console.WriteLine(time.ToString());

Scale xScale = zedGraphControl1.GraphPane.XAxis.Scale;
if (time > xScale.Max – xScale.MajorStep)
{
xScale.Max = time + xScale.MajorStep;
xScale.Min = xScale.Max – 30.0;
}

//第三步:调用ZedGraphControl.AxisChange()方法更新X和Y轴的范围
zedGraphControl1.AxisChange();

//第四步:调用Form.Invalidate()方法更新图表
zedGraphControl1.Invalidate();
}

private void Form1_Resize(object sender, EventArgs e)
{
SetSize();
}

private void SetSize()
{
// 控制始终是以10像素插入矩形从客户端的形
Rectangle formRect = this.ClientRectangle;
formRect.Inflate(-10, -10);

if (zedGraphControl1.Size != formRect.Size)
{
zedGraphControl1.Location = formRect.Location;
zedGraphControl1.Size = formRect.Size;
}
}

}

下一篇: 9.Parameters
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,078
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,553
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,402
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,177
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,814
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,898