二维图或者三维图终归是静态的,如果能够使用动画来表现时间维度,就会更加生动有趣。如果你正准备作报告或者展示Demo,动画会让整个观感增色不少。一般地,我们可以使用AfterEffect来制作,但是对于需要比较复杂的数据和逻辑驱动的时候,就会非常累而且效果很难达到预期。
有人开发了一款数学动画制作软件 Manim,只需要熟悉Python和Latex的一些知识,就可以用来制作自己的动画。 这款软件能够做什么,做出来的效果怎么样,这里带大家先睹为快。1 物体移动
既然是动画,那自然缺少不了目标物体的移动。Manim提供了直观的接口来控制物体的位置,并且在移动的过程中添加了一些效果。这些移动包括直接设置目标的绝对位置,或者以当前位置为参考作出相对移动。
2 Latex复杂文本
做科技动画时,常常需要展示数学公式,或者其他的形式非常复杂的文本,这时,常常需要借助Latex来生成。manim会调用Latex指令将生成指定内容的矢量图文本,然后将这些矢量图放到动画中。除了展示五颜六色的文字,还可以展示复杂的数据公式和程序代码。
3 坐标轴
绘制一些数学图形时,坐标轴会是一个必不可少的组件。Manim提供了一些默认的坐标轴对象,可以直接在自己的动画中使用。除了普通的数轴和二维直角坐标系,还可以添加复数坐标和三维坐标。有一些坐标轴自带了比较酷炫的效果,让人眼前一亮。
4 常用的形状
Manim提供了一些常用的矢量图基本形状,也提供了将这些基本形状组装成复杂形状的机制。首先看看一些基本的2D形状,包括并不限于圆、矩形、直线、弧形等等。
此外,Manim也提供了绘制3D形状的方法,使用者只需要给出形状的表面描述方程即可生成对应的三维形状,包括球形、立方体以及根据函数确定的复杂形状,如马鞍面、锥面等等。
5 动画效果
从一个物体变化到另一个物体,这之间的转台变化过程该如何表现,这一点并不需要我们关心,Manim已经提供了一些非常不错的动画效果。
以上介绍了Manim的一些基础组件和基础效果,由于这是一个开源的Python模块,大家可以根据自己的需求来定制几乎所有的对象和效果。如果你有一个特殊的形状需要展示,完全可以使用其他软件设计完成,然后导出SVG文件的矢量图,就可以在Manim中通过代码来操作这些自定义对象了。
题外
频道资源,可以私信关键字获取。
Python编程问题咨询,请发送关键字【咨询】
获取leetcode源代码,请发送关键字【leetcode】
获取书籍,请发送关键字【书籍】