关于TeeChart使用我会持续更新
关于TeeChart使用我会持续更新
这篇文章中我是在Winform窗体使用TeeChart2011控件,通过定时器实现了实时绘制曲线图(三个序列)。
先上一下效果图:
1.TeeChart2011.ocx的注册
TeeChart2011.ocx下载地址
下载好TeeChart2011.ocx后,32位系统将其放在C:\WINDOWS\System32目录下,64位系统将其放在C:\WINDOWS\SysWOW64,在该目录下以管理员身份运行命令提示符(可以再该目录下找到cmd.exe,以管理员身份运行即可),通过regsvr32命令注册该控件,我的64位系统,图示如下:
注册成功会弹出以下提示:
如果想要长期使用的话,注册前请将系统时间调至2000/1/1,注册后调回即可。
如果注销该控件的话,可以通过regsvr32 -u指令。
2.TeeChart控件的添加
(1)新建一个WinForm窗体程序,左侧工具栏新建一个选项卡,直接将System32或SysWOW64目录下的TeeChart2011.ocx拖拽到创建的选项卡中即可。
(2)拖拽一个TeeChart Pro Activex control到窗体上,拉伸到合适大小。
现在我们需要了解一下TeeChart的基本知识
a.axTChart:我们添加到窗体上的TeeChart控件。
b.series:数据序列(实际上就是我们画出的一条曲线或一个其他图形)。
c.axis:坐标轴(包含上下左右以及纵深轴,这里我们只用到底轴和左轴,即x轴和y轴)。
d.AddSeries():向axTChart添加一个数据序列。
e.AddXY():向Series添加一个点。
3.绘制简单的曲线图
有了这些知识我们就可以开始创建第一个曲线图了:
private void Form1_Load(object sender, EventArgs e)
{
//添加数据序列,并设置绘图类型
axTChart1.AddSeries(ESeriesClass.scFastLine);
//设置底轴和左轴的最大值最小值
axTChart1.Axis.Bottom.SetMinMax(0, 100);
axTChart1.Axis.Left.SetMinMax(0, 20);
//添加数据点
for (int i = 0; i < 100; i++)
{
axTChart1.Series(0).AddXY(i, 0.15 * i, "", 0);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
4.动态绘图
根据以上内容,已经可以实现对已有数据一次性完成绘图,但是如果想要动态绘图,可以通过定时器来实现。代码如下。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 200ms定时器
/// </summary>
System.Timers.Timer t = new System.Timers.Timer(200);
/// <summary>
/// 用于生成随机数
/// </summary>
Random rd = new Random();
/// <summary>
/// x坐标
/// </summary>
int point_X = 0;
/// <summary>
/// y坐标
/// </summary>
int point_Y = 0;
private void Form1_Load(object sender, EventArgs e)
{
t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件;
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
}
/// <summary>
/// 定时器触发绘图事件
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void theout(object source, System.Timers.ElapsedEventArgs e)
{
for (int i = 0; i < 3; i++)
{
//生成0-20中间的随机数
point_Y = rd.Next(20);
axTChart1.Series(i).AddXY(point_X, point_Y, "", 0);
point_X++;
}
}
private void btn_DrawPoints_Click(object sender, EventArgs e)
{
axTChart1.RemoveAllSeries();
axTChart1.Axis.Bottom.SetMinMax(0, 100);
axTChart1.Axis.Left.SetMinMax(0, 20);
for (int i = 0; i < 3; i++)
{
//将series加载到TeeChart控件上
axTChart1.AddSeries(ESeriesClass.scFastLine);
}
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
}
}
---------------------
作者:DurableHumor
来源:CSDN
原文:https://blog.csdn.net/my_clear_mind/article/details/79741020
版权声明:本文为博主原创文章,转载请附上博文链接!
关于TeeChart使用我会持续更新的更多相关文章
- 总结js常用函数和常用技巧(持续更新)
学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...
- 私人网盘系统2.0—全部升级为layUI+PHP(持续更新中)shang
网盘系统2.0 上周,我做了第一版的“私人网盘系统”,http://www.cnblogs.com/sunlizheng/p/7822036.html 没看过的朋友可以去看一下,这周在家升级做了第 ...
- spring web 脚手架 (持续更新中...)
spring web 脚手架 项目地址: https://github.com/MengW9/scafflod.git 还有觉得哪些可以加上去的配置,欢迎各位拍砖,我会持续更新,大家共同进步 一个通用 ...
- 2020/1/29 PHP代码审计之进一步学习XSS【持续更新】
0x00 上午学习了XSS漏洞,中午吃饭想了想,还是思考的太浅层了,这种老生常谈的东西对于现在的我意义不大.现在我需要的是思考.于是就有了这个随笔.在本文中,我会持续更新一些XSS的深入思考,payl ...
- 4W字的后端面试知识点总结(持续更新)
点赞再看,养成习惯,微信搜索[三太子敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的 ...
- Unity 相关经典博客资源总结(持续更新)
就作为一个记录吧,把平时看过的Unity相关的一些好的Blog记录并分享. 好的论坛: Unity官方脚本 点评:这个不用说了,最核心的内容,理解整个Unity引擎的方方面面,梳理结构. Unity ...
- 【转】Unity 相关经典博客资源总结(持续更新)
原文:http://blog.csdn.net/prothi/article/details/20123319 就作为一个记录吧,把平时看过的Unity相关的一些好的Blog记录并分享. 好的论坛: ...
- Vue.js2.0中的变化(持续更新中)
最近自己在学习Vue.js,在看一些课程的时候可能Vue更新太块了导致课程所讲知识和现在Vue的版本不符,从而报错,我会在以后的帖子持续更新Vue的变化与更新,大家也可以一起交流,共同监督学习! 1. ...
- Elasticsearch 思维导图集锦(持续更新...)
目录 引言 思维导图 全文搜索 Elastic 基础 Query DSL Multi Match Query 系列文章列表 参考 引言 本文主要是对 elasticsearch 的一些知识点使用思维导 ...
随机推荐
- hdu 1811 Rank of Tetris - 拓扑排序 - 并查集
自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球. 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜, ...
- iOS开发 -------- UITableView的编辑
一 核心API Class: UITableView Delegate: UITableViewDataSource, UITableViewDelegate 涉及到的API: 插入和删除 1 /** ...
- linux命令之crontab定时执行任务【转】
本文转载自:https://www.cnblogs.com/coffy/p/5608095.html 一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护 ...
- 因为强行关机, 而导致的fedora23 不能重新启动, 卡在开机logo那里的 修复 解决方案
其实, fedora23的U盘live 也很好用, 很流畅, 主要还是 要用一个比较好的/快的 U盘. 这样live U盘在4GB(3.75GiB)的内存中还是较快的 原来的U盘live系统用得很卡, ...
- <OFFER15> 15_NumberOf1InBinary
// 面试题15:二进制中1的个数 // 题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如 // 把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2. #inc ...
- (转)Spring Cloud(一)
(二期)22.微服务框架spring cloud(一) [课程22]spirng c...简介.xmind54KB [课程22]spirng cl...架构.xmind0.5MB [课程22]负载均. ...
- Calculate difference between consecutive data points in a column from a file
cat > temp0015101269125 awk 'p{print $0-p}{p=$0}' temp00152-633-7 REF: https://www.unix.com/shel ...
- 论文笔记: Dual Deep Network for Visual Tracking
论文笔记: Dual Deep Network for Visual Tracking 2017-10-17 21:57:08 先来看文章的流程吧 ... 可以看到,作者所总结的三个点在于: 1. ...
- [exceltolist] - 一个excel转list的工具
https://github.com/deadzq/cp-utils-excelreader <(感谢知名网友的帮助) https://sargeraswang.com/blog/2018/1 ...
- strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数
strcpy函数: char *strcpy(char *Dest , const char *Src) { assert((Dest != NULL) && (Src != NULL ...