让数学变得更生动manim库的使用(4)-动画系统详解

本文详细介绍了manim动画库的各种动画效果,包括淡入淡出、生长动画、强调动画(如Flash和ShowPassingFlash)、位移动画、数字动画、滚动动画、变形动画(普通变形、矩阵变形、颜色变化等)以及文字和公式匹配动画。内容适用于manimCE 0.60版本。
摘要由CSDN通过智能技术生成

1、概述

在第二篇文章中已经对动画系统做了简要的说明,本文将用更多示例详细说明manim中的各种动画。需要说明的是,以前三篇文章使用的是manimCE0.50的版本。而本文升级到了0.60所以很多示例可能在0.50的版本中无法正常运行。

2、 淡入淡出

%%manim   -ql -v WARNING -i FadeScene
class FadeScene(Scene):
    def construct(self):
        text = Text('First Order Model').scale(2)
        self.add(text)
        # 淡入效果
        #self.play(FadeIn(text,lag_ratio=.2))
        #self.play(FadeInFrom(text,direction=UP))
        #self.play(FadeInFromLarge(text,scale_factor=2))
        #self.play(FadeInFromPoint(text,ORIGIN))
        # 淡出效果
        # self.play(FadeOut(text))
        # self.play(FadeOutAndShift(text,direction=RIGHT))
        self.play(FadeOutToPoint(text,ORIGIN))
        self.wait()

3、 生长动画

  • 该动画一定应用在有方向的物体上
%%manim  -ql -v WARNING -i  GrowScene
class GrowScene(Scene):
    def construct(self):
        arrow = Arrow(start=LEFT, end=RIGHT)
        self.add(arrow)
        circle=Circle()
        
        self.play(GrowArrow(arrow))
        self.play(Uncreate(arrow))
        self.add(circle)
        self.play(GrowFromCenter(circle,point_color=RED))
        #self.play(GrowFromEdge(arrow,edge=LEFT))
        #self.play(GrowFromPoint(circle,point=[-0.5,0,0],point_color=RED))
        #self.play(SpinInFromNothing(circle,path_arc=0))
        
        
        self.wait()
        

4 强调动画

%%manim   -ql -v WARNING -i Indications
from manim import *

class Indications(Scene):
    def construct(self):
        indications = [ApplyWave,Circumscribe,Flash,FocusOn,Indicate,ShowPassingFlash,Wiggle]
        names = [Tex(i.__name__).scale(3) for i in indications]

        self.add(names[0])
        for i in range(len(names)):
            if indications[i] is Flash:
                self.play(Flash(UP))
            elif indications[i] is ShowPassingFlash:
                self.play(ShowPassingFlash(Underline(names[i])))
            else:
                self.play(indications[i](names[i]))
            self.play(AnimationGroup(
                FadeOutAndShift(names[i], UP*1.5),
                FadeInFrom(names[(i+1)%len(names)], DOWN*1.5),
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值