经过这段时间废寝忘食的工作,笨笨的CChart系列教程终于将暂时告一段落。

要到分别的时刻了,虽然伤感,但也要先乐呵乐呵。

20.1周杰伦遇神灯

话说有一天周杰伦在沙漠中迷路了,这时他捡到一个神灯。他摸摸神灯,从里面出来一个神仙。神仙说:“我能满足你三个愿望。”

周杰伦一看,高兴地脱口而出:“哇塞!屌爆了!”只听见“啪”的一声,他痛苦地蹲在地上呻吟。

神仙说:“第二个愿望呢?”。周杰伦艰难地说:把我弟弟治好。果然,他不疼了,站起来一看,完好无损。遂惊呼:“哇塞!屌爆了!”

话音未落,又听见“啪”的一声从周杰伦身上传来,神仙已经化作一股青烟飘走了,只剩下周杰伦独自躺在沙漠里。

进入某大大纪元二年,不仅周董遇到了神灯,连小米的雷布斯和谷歌的HugoBarra都遇到了神灯耶。

同学们,听了前面的课程,你是不是和周董有相同的感觉呢?CChart的确碉堡了吧?

20.2CChart类库的结构

这里笨笨可以明确告诉同学们的是,此次系列教程所介绍的功能只是CChart类库功能的一小部分。

CChart类库分为核心类、扩展类、三维类、包装类和扩充类五大部分。

核心类主要指折线图绘制的类及其相关支撑类,这是最基本的部分。虽然很基本,但笨笨在核心类中设置了无数的选项,这使得CChart非常灵活,非常好用。CChart内部选项之丰富从右键菜单可以感受到,实际上右键菜单也仅仅使用了CChart的一小部分内部选项。

另外略举几例吧,如对数类型的坐标轴、显示时间的坐标轴(年月日时分秒)、数据点的标记、误差棒等等等等。本课后面部分也展示了一部分选项。

扩展类是在核心类的基础上,实现的各种特殊绘图功能。笨笨前面介绍的饼图、柱图、等高线图、云图、分裂视图、分层视图、共享X轴视图等,都属于扩展类的功能。扩展类的种类实际上远不止这几种,目前一共差不多有三十种。

三维类利用OpenGL技术绘制三维曲线曲面,与核心类有一定关系。前面已经介绍了三维曲线的绘制功能。

由于核心类、扩展类和三维类都基于模板,编程相对复杂,为了简化编程,新版CChart新增了包装类,包装类已经完全隐藏了模板类的细节。

最新版CChart还增加了扩充类,用于仪表类模拟界面的编制。扩充类在功能和实现上都与前面的类无关,是独立的。

几种类的关系如下图所示。

SouthEast

20.3动态链接版的功能

动态链接版实际上就是前述包装类,其功能当然就只是CChart的一小部分了。

本课程基本上把动态链接版的功能全面介绍了。同学们也可以发现,其实功能已经相当丰富了。笨笨觉得,只要没有特殊的要求,已经够用了。

存在的问题有两个方面,一方面是扩充类以及很多扩展类没有包装进来,另一方面是类库内部丰富的选项无法设置。

同学们就要问了,为什么笨笨不把全部功能包装起来呢。

这个问题,笨笨可以告诉大家,笨笨设置包装类的目的本来是为了简化编程,但后来发现,其实包装也是一门技术活。CChart各种绘图类型之间存在差异,有的差异很明显,有的差异则很细微。要把这些功能包装起来,且能正常工作,也很不容易。包装类本来没有实现什么新功能,目前其代码已经达到几千行。要把所有功能包装进去,工作量大得不得了。所以目前笨笨并没有大规模扩充包装类的计划。

20.4授权问题

这个问题很简单,只要不是商业应用,随便。

20.5源码问题

有些同学非常关注源码问题。CSDN网站的下载频道有CChart的开源版本。

http://download.csdn.net/detail/baita96/4597703

20.6新功能演示

下面向同学们展示一些前面没有出现的功能。

073903296.png

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

SouthEast

20.7笨笨的联系方式

邮件:baita00@aliyun.com

QQ、微信:1541583