问题描述:
图形的绘制几乎所有的软件都会多多少少的用到,细数一下chart组件也用过一些了。
刚才开始编程的时候,能够使用的chart组件很少,如果是一般常使用的就是微软mschart,它用在数据量不大的时候,或者示意性的图形中。
那时候mschart效率不过也有些丑,许多时候还需要自己写chart组件,我当时就用vc写过一个线图和柱图,放在胖客户端或者应用中。后来做过证券客户端烛图的绘制,这些都是使用gdi进行的,但从效率来说还是可以的。
有一阵cb和delphi比较流行,插件很多,其中也有一些图形插件。
后来呢java和dotnet更加流行,使用这些工具更容易绘制图形,不愿意写直接调用图形插件也很方便。
进入2010年之后js更流行,谁能想到js这么一个当初看起来很混乱的语言竟能发展起来。js也开始能更方便的绘图了,比如vue的echart之类的。
移动手机流行之后,入行做了android,android对与图形绘制支持更多,也有很多的手段渲染图形。
这些年chart插件用过几个:
主要有(只算第三方的):
mschart
Microsoft 图表控件。最初也只是普通的windows组件,可以直接添加到mfc或者html文件中,后台变成了.net组件。
Dundas Software chart
.net图表工具。功能比较完善,不过很少人用了。像这样流星般闪过的东西实在太多了,可天上的星星依然是那么多。
GraphView
android图形库,来自于https://github.com/jjoe64/GraphView。在处理时间曲线方面很成问题,但也不是一无是处,对于简单图形还是简单易用的。如果实现拖动,修改源码,需要自定义。不过拖动在所有android开源chart都不容易实现。
XCL-Chart
android图形库,效果上比GraphView上档次一点。在众多图形库选择它也是因为它的结构合理,自定义扩展更简单。图形效果也好。
vue-echart
Apache ECharts 的 Vue.js 组件。对这个控件,我只能佩服,恕我孤陋寡闻,它是js中一个相当优秀的图形插件。
canvas与sdl,openGL:
在android上绘制图形的技术很多,canvas只是最基本的,还有sdl(使用jni方式),openGL(GLSurfaceView),不过后两种方式画线条就没那么容易,需要需要逐像素计算和绘制,openGL还需要考虑映射坐标,如果对效率要求不高一般也不用。
用过sdl是因为做过视频渲染,使用opengl是因为曾经分析过别人写的心电图绘制。
每项技术有自己的特长,用过了其实也就明白,不过是套路;架起运行框架,熟悉一下运行原理,磕几份源码基本就了解怎么使用,最重要的技术能被项目使用,给自己带来价值,不然学了也就学了,有啥用。
参考:
MSChart
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=14422
vue-echart
http://echarts.baidu.com/index.html
GraphView
https://github.com/jjoe64/GraphView
XCL-Chart
https://github.com/xcltapestry/XCL-Charts
关于: