深入浅出CChart 每日一课——第二十课 窥豹一斑,阶段性总结之毕业典礼

(敬请注意:由于教程的编写时间已经过去好几年了,CChart库在这期间不断迭代,已经有了一定的变化,使得教程中的部分代码不能直接运行。为减小大家在使用中的困惑,教程已经根据最新版本进行了修订,所有示例程序修订后都测试通过。新版教程和例子源码在QQ群487856433和www.cchart.net网站均可下载。)

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

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

20.1 周杰伦遇神灯

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

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

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

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

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

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

20.2 CChart类库的结构

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

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

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

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

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

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

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

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

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

20.3 动态链接版的功能

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

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

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

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

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

20.4 授权问题

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

20.5 源码问题

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

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

20.6 新功能演示

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

20.7 笨笨的联系方式

邮件:baita00@aliyun.com

QQ、微信:1541583

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值