来看一组炫酷的动画图表:
这样的效果拿去演讲、报告、放在门户主页上岂不是非常吸睛?
制作起来一定很难吧?
NO!很简单:一行代码也不用写!
只需在下面这个图形界面中,导入一个你做好的图表的SVG文件,然后通过鼠标拖动图表单元,设定出场一下时间和动画效果就可以了。
数据和动画始终保持一致,也无需你计算实现动画背后的各种复杂机制,速度、形式、缓动函数等参数都已帮你安排好:
而如此快捷地实现动态图表的背后,更厉害的是还有一门针对可视化动画的声明式语言——Canis。
它不依赖任何第三方库,由图形学大牛北京大学陈宝权教授的弟子——葛彤等人提出;葛彤刚刚在山东大学成功博士答辩,合作导师是汪云海教授。
也是第一门为构建可视化动画提供全面支持的领域特定语言(DSL)。
陈教授也赞扬葛彤以一己之力开发了这样一个多层级系统。
除了上面所说的特点,该平台支持的图表形式也非常丰富:只要你能做出来的都可以在这里实现动画效果。
而且除了可以导出mp4文件应用到日常场景,如果你是开发人员——那就太好了,量身定做:
它可以导出Lottie动画的JSON格式,帮你轻松实现跨iOS、Android、Web等平台使用。
拜在图形学大牛门下,葛彤的研究方向为数据可视化,这种技术可以大大提升信息传递的效率。
但他发现市面上制作相关动画的工具都不够便利。
比如有些类库(比如D3)需要用户手动计算动画中的各个时间节点并通过调整底层的视觉通道状态来实现动画效果;
再比如Matplotlib、Pandas这种大家很熟悉的工具,虽然很强大但更是需要你一行一行地写代码才能制作效果。
这些都对不会编程的用户非常不友好。
而创建动画的专业工具(比如AE)在制作动画图表时,虽然不需要编程了,但操作过程也很繁琐:需要逐帧制作,而且动画与数据是脱离的,根本没法保证结果一致性。
那就利用所学自己搞一个数据驱动的可视化动画图表创作工具吧。
一开始,葛彤准备直接做一个去编程化的创作平台。
但他在前期的探索和尝试中发现,这样一个复杂系统的内部需要有一个严谨且支持描述各类图表多样的动画形式的规则,以及相应的编译和渲染机制。
于是他们从广义的动画理开始研究,之后结合可视化的特点以及可视化动画在应用过程中的一些规律、特殊结构特点,并探索在语法中如何能够合理地编码和反映这些特点。
最终设计出来了这门DSL语言Canis(其含义是Chart Animations,固缩写为Canis,也是大犬星座的名称,方便记忆)。
葛彤介绍道,这也是整个工程中最困难的一步,前人也没有相关研究。
文章来源:《电脑编程技巧与维护》 网址: http://www.dnbcjqywh.cn/zonghexinwen/2021/0912/1272.html
电脑编程技巧与维护投稿 | 电脑编程技巧与维护编辑部| 电脑编程技巧与维护版面费 | 电脑编程技巧与维护论文发表 | 电脑编程技巧与维护最新目录
Copyright © 2018 《电脑编程技巧与维护》杂志社 版权所有
投稿电话: 投稿邮箱: