【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是什么意思?

那么程序是怎么知道哪个端点对应哪个端点的呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白草遥遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值