1. SVG、图片、和文字

所用到的方法:

  • SVGMobject
  • ImageMobject
  • TextMobject
  • TexMobject
  • Text
  • LaTex
  • cairo

1.1 素材文件夹

  • 在manim中使用外部图片或SVG文件时,有三种定位文件的方法
    • 直接使用绝对路径定位文件
      • “D:\…\picture.png”
      • “/home/…/picture.png”
    • 也可以将文件放在与manim.py、manimlib同级的文件夹内使用相对路径
    • 放在素材目录(assets/)当中,assets目录需要自己创建在与manim.py同级的目录当中,之后只需要使用文件名就可调用

image.png

1.2 在manim中插入SVG

使用SVGMobject可插入SVG图片
关键字参数与VMobject具有共同的属性

  • color图片颜色
  • stroke_width线条宽度

    1. mob = SVGMobject("x.svg",color = RED,stroke_width = 4)

    由于SVGMobject是VMobject的子类,所以可以使用所有动画效果

    1. mob = SVGMobject("x.svg",color = RED,stroke_width = 4)
    2. self.play(Uncreate(mob))

    SVGMobject能够处理和显示有关SVG的元素如下:

  • path

  • rect
  • circle
  • ellipse
  • polygon
  • polyline

制作SVG时只能含有以上元素

1.3 在manim中插入图片

使用ImageMobject可插入图片(jpg,png,gif)
属性:

  • height插入图片高度
  • invert是否反色
    1. img = ImageMobject("x.png",height=3,invert=False)
    ImageMobject不是VMobject的子类,所有有很多动画无法使用

1.4 在manim中使用文字

  • 可以使用TextMobject(利用LaTex编译转换出SVG)
  • 传入一个字符串,来表示显示的文字(会套入模板中使用xelatex编译)
  • TextMobject的其他属性与VMobject相同,可以使用所有动画效果
  • 一个TextMobject中也可以传入多个字符串,会单独编译,连在一起显示
    1. text = TextMobject("Text文字",color=BLUE,background_stroke_color=RED)
    2. self.play(Uncreate(text))
    3. text2 = TextMobject("\\LaTeX\\\\换行")
    4. text3 = TextMobject(r"\LaTeX")
    5. text4 = TextMobject("ab","cde")

    使用LaTeX命令的\都需要替换为\转义,或在字符串前加’r’

  • 一个TextMobject包含一个或多个子物体,指向传入的每个字符串,可用下标来访问每个字符

image.png

1.5 在manim中书写公式

  • 书写公式常用TexMobject(即LaTeX的align*环境)
  • 结构与TextMobject相似
    1. tex = TexMobject("\\sum^n_{i=1}i^3=?")