自动生成过渡动画的?"/>
【Manim学习笔记】Transform函数是如何自动生成过渡动画的?
写在前面
emm我只是平平无奇的大学牲。在我学习Manim的过程中,发现CSDN很少有人讲Manim的内容,没有前人的经验,自己学起来举步维艰…因此写下这个【manim学习笔记】系列博客,希望能帮助各位想做数学动画的同志们免受折磨。
我的笔记全都是基于Manim官方英文文档 的补充,主要讲解那些没被讲到的细节,和晦涩难懂的地方,所以在看我的笔记前请先把官方文档里相关的部分先看一遍哦。有其它问题或思路的同学也欢迎在评论区提问或补充,我会持续补充更新。大家一起共创千秋伟业↖(≧▽≦) ↗
相关文档:transforming-mobjects-into-other-mobjects
发现问题
如果有学过视频剪辑、动画制作的小伙伴,应该都知道一个物体的动画是怎么做出来的,最基本的操作无非平移、伸缩、旋转。可是在Transform(A,B)
这段动画生成的时候,我们根本没对我们的物体进行任何的操作,那这段动画是怎么生成的呢?
本人自己通过实验得出了一套猜想,并且经过检验还没有发现错误,所以在这里跟大家分享一下。
先看一个实验
这是实验代码:
class test(Scene):def construct(self):# 放置两个方形,一个在右边,一个在左上方square1= Square(2).shift(RIGHT)square2= Square(2).shift(LEFT).shift(UP)# 第一次实验时不加这行代码,第二次实验时加上square1.points= np.roll(square1.points,int(len(square1.points)/4),axis=0)# -----------------------------------------self.add(square1)self.play(Transform(square1,square2))self.wait(1)
这是实验结果:
第一次实验(不加那一行代码):
为什么会出现这种情况?
请看我下面这张示意图:(箭头代表着端点的平移轨迹)
要是看得懂的同学就可以关掉这篇文章了,看不懂的同学,且听我娓娓道来~
XXX.points
是什么意思?
那么程序是怎么知道哪个端点对应哪个端点的呢?
更多推荐
【Manim学习笔记】Transform函数是如何自动生成过渡动画的?
发布评论