TeeChart的X轴,使用伪装的时间
TeeChart曲线的X轴是时间,但是频率很高。没法完全显示。
例如,一秒钟有2000个点,那么点与点的间隔为0.5毫秒。
使用TChart类的GetAxisLabel事件,
函数手册上对此事件的解释:
An Event is triggered for each Axis Label painted. There are two different uses for GetAxisLabel: 1) : Axis Labels are Values. Is this case, the Series parameter will be nil, and the ValueIndex will be -1.
2) : Axis Labels are Series points. The Series parameter will be a valid Series, and the ValueIndex will be the current Series point position. You can change the LabelText referred parameter for drawing a different Axis Label.
private void Init()
{
tChart = new TChart();
line = new Line();
random = new Random(); tChart.Series.Add(line);
tChart.Aspect.View3D = false;
tChart.Dock = DockStyle.Fill;
tChart.GetAxisLabel += tChart_GetAxisLabel;
tChart.Axes.Bottom.Labels.Style = AxisLabelStyle.Mark;
tChart.Axes.Bottom.Labels.Angle = ;
line.ShowInLegend = false; }
void tChart_GetAxisLabel(object sender, GetAxisLabelEventArgs e)
{
if (((Steema.TeeChart.Axis)sender).Equals(tChart.Axes.Bottom))
{
double max = tChart.Axes.Bottom.Maximum;
double min = tChart.Axes.Bottom.Minimum;
double middle = Math.Ceiling((min + max) / 2.0 + min);
if (e.ValueIndex == max)
{
e.LabelText = DateTime.Now.ToString("MM-dd HH:mm:ss");
}
else if (e.ValueIndex == min)
{
e.LabelText = DateTime.Now.AddHours().ToString("yyyy-MM-dd HH:mm:ss");
}
else if (e.ValueIndex == middle)
{
e.LabelText = DateTime.Now.AddMinutes().ToString("yyyy-MM-dd HH:mm:ss");
}
else
{
e.LabelText = string.Empty;
}
}
}
上述代码的问题是:
在缩放的时候,就没有开始时间,结束时间以及中间的时间了。
需要考虑在缩放事件中,重新绘制这三个时间,难点在于,计算出当前起始点和结束点所对应的时间。
TeeChart的X轴,使用伪装的时间的更多相关文章
- TeeChart的X轴为时间,多个Y轴的显示
最后上代码 public partial class Test : Form { private TChart tChart = new TChart(); ; public Test() { Ini ...
- css 常见时间轴的做法(————————————————时间轴——————————————————)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Asp.net+jquery+ajaxpro异步仿Facebook纵向时间轴效果
Asp.net+jquery+ajaxpro异步仿Facebook纵向时间轴效果 在一个项目中,用到了时间轴展示产品的开发进度,为了更好用户体验,想到了Facebook的timeline效果, 搜了一 ...
- 超炫的时间轴jquery插件Timeline Portfolio
Timeline Portfolio是一款按时间顺序专业显示事件的jquery时间轴插件,可以根据时间的先后嵌入各种媒体包括微博,视频和地图等.这个展现的模式非常适合设计师的作品集和个人简历的展示.T ...
- HTML5+CSS3实现的响应式垂直时间轴
<!DOCTYPE HTML><html><head><meta charset="utf-8"><meta name=&qu ...
- Android自定义指示器时间轴
指示器时间轴在外卖.购物类的APP里会经常用到,效果大概就像下面这样,看了网上很多文章,大都是自己绘制,太麻烦,其实通过ListView就可以实现. 在Activity关联的布局文件activit ...
- 使用canvas编写时间轴插件
使用canvas编写时间轴插件 背景 项目中有一个视频广场的功能,需要一个时间轴类似视频播放中进度条功能一样显示录像情况,并且可以点击.拖动.放大缩小展示时间轴,获取到时间轴的某个时间.原来的时间轴是 ...
- 超酷的JavaScript叙事性时间轴(Timeline)类库
在线演示 Timeline 是我见过的最酷的展示事件随时间发展的javascript实现.你可以基于时间使用讲故事的方式来创建时间轴特效,整个时间轴以幻灯的方式来展示,你可以穿插图片,视频或者是网站, ...
- Arcgis栅格时序地图制作---时间轴动态展示多期影像
转自原文 Arcgis栅格时序地图制作---时间轴动态展示多期影像 效果如何???满意您go on,不满意咱 say goodbye··· 题外话: 为了在这里动态展示下制作结果,也是费了老劲了,转换 ...
随机推荐
- windows下SSH客户端远程访问Linux出现错误
- 使用JAXP进行sax解析
package cn.liuning.sax; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactor ...
- C++(MFC)编程一些注意事项
一·书写问题 1.括号:左右大括号最好都放在左侧,这样可以很清楚大括号的看清配对情况以及作用域,便于检查也不易出错. 2.强制转换:强制转换表达式时一定要加括号,否则可能只转换了表达式中的单个量,可能 ...
- android 开发高仿QQ表情选择、输入框
首先大家看效果: 用到的文件有(源码文件有,只包含表情.输入框等有关文件,工程项目是公司项目,恕不公开啦): res: drawable/face_del_icon.xml drawable/iv_f ...
- android中实现Parcelable序列化步骤
import java.io.Serializable; import java.text.DecimalFormat; import android.os.Parcel; import androi ...
- Win64位操作系统无法运行暗黑2战网D2GS的解决办法
前几天想在我的Win7 x64系统里做个战网自己玩,搭建完毕后进入战网创建房间出现经典的问题,“排队1”. 原因很清楚,就是D2GS无法启动:但是使用之前的各种办法尝试后无果,后来查看D2GS同目录下 ...
- c++ read
#include <fstream> #include <iostream> int main(void) { ] = {}; ; std::ifstream read(&qu ...
- curPos和tgtPos
curpos tgtpos 乍一看以为是当前位置和目标位置,但在项目里面这两个位置有点坑 当客户端玩家移动或者AI里面的位置,会把获得的位置付给tgtpos 而以前的tgtpos会付给curpos 所 ...
- uva 10994
一开始想法太简单 错了好多遍 #include <cstdio> #include <cstdlib> #include <cmath> #include < ...
- tomcat 解析(五)-Tomcat的核心组成和启动过程
声明:源码版本为Tomcat 6.0.35 前面的文章中介绍了Tomcat的基本配置,每个配置项也基本上对应了Tomcat的组件结构,如果要用一张图来形象展现一下Tomcat组成的话,整个Tomcat ...