【manim动画教程】-- 安装

manim,动画教程,安装 · 浏览次数 : 244

小编点评

**安装 Manim 库** 1. 下载并安装 Manim 库:`pip install manim` **配置 Python 环境** 1. 安装 Python 3.x 2. 创建一个名为 `python` 的新目录。 3. 在 `python` 目录中运行以下命令:`python -m venv venv && source venv/bin/activate` 4. 安装 `ffmpeg`:`pip install ffmpeg` 5. 安装 `latex`:`pip install latex` **验证安装** 1. 启动命令行。 2. 输入 `ffmpeg.exe -h`,检查是否安装成功。如果安装成功,您将看到类似下面的输出: ``` ffmpeg.exe -h ffmpeg version 3.4.4 Copyright (c) 2000-2023 FFmpeg Foundation ``` **开发 Math 动画** 1. 创建一个名为 `sample.py` 的新文件。 2. 使用 `Manim` 创建数学动画对象。 3. 设置动画参数,例如动画时间和速度。 4. 使用 `play()` 函数播放动画。 **示例代码** ```python import manim # 创建一个 Math 动画对象 class TransformExample(manim.Scene): def construct(self): # 创建一个 banner 对象 banner = manim.ManimBanner() # 将 banner 对象移至画面上半部分 banner.shift(UP * 0.5) # 创建动画 self.play(banner.create(), run_time=1) # 创建数学公式文本 tex = manim.VGroup( manim.Text("测试中文能否显示\"), manim.Text(r"\$\\sum_{n=1}^\\infty \\frac{1}{n^2} = \\frac{\\pi^2}{6}$\"), ) # 将公式文本放在banner上 tex.arrange(RIGHT, buff=SMALL_BUFF) # 显示文本 self.play(Write(t), run_time=1) # 播放动画 self.play(Write(tex), run_time=1) # 等待结束 self.wait() ```

正文

manim是基于python语言开发的开源框架,是由 3blue1brown 开发的。
本来是他们自己用来制作数学视频用的,因为其友好的API和漂亮的UI效果,在开源之后,立刻流行起来。

原先开源的地址是:

后来托管给了社区,现在安装最新的版本请从这里下载:

改版之后,命令行更加清晰,简单。
command.png

支持的系统平台

manim对系统没有要求,可以在:

  1. Windows 系统上安装:
  2. macOS上安装:
  3. Linux上安装:

也可以docker方式安装:
不过,如果是用来开发的话,还是建议在本地的 python环境中安装。

python 安装

manim是基于 python的,所以第一步是安装和配置 python 环境。
关于python环境的安装,这个系列中已经介绍过:

配置好python环境之后,通过 pip安装 manim package即可。

pip install manim

重要依赖

除了安装 manim之外,还有两个重要的依赖也需要安装,
安装这两个依赖之后,才能顺畅的开发各类数学动画。

1. ffmpeg

通过 ffmpeg可以将动画导出成常用的视频格式(比如 mp4),便于传播,其他人不用配置manim的环境,用各类视频播放器或者直接用浏览器就能直接观看了。

是跨平台的,根据自己的系统,下载对应的安装包安装即可。
我是在windows上安装的,安装之后打开命令行验证是否安装成功:

ffmpeg.exe -h

image.png
如果输入命令之后你也有类似上面这样的输出,那么说明 ffmpeg安装成功了。

2. Latex

其次是 latex,这个依赖不是必须的,如果你的动画中有数学公式要显示的话,才需要安装这个包。
latex有很多发行版,我安装的是:

这个也是跨平台,选择对应系统的版本即可。
安装之后,在菜单中打开MiKTeX Console
image.png

选择切换到管理员模式
image.png

后续使用 manim进行开发的时候,如果有提示缺失某些宏包的时候,可以从下面图示的位置来安装。
image.png

一般情况下,都会自动安装,很少需要手动安装。
有可能会弹出类似下面的提示窗口,选择安装即可。
latex安装缺失的包.png

验证安装

以上都配置好之后,可以用下面的代码来验证是否安装成功。

# -*- coding: utf-8 -*-
from manim import *


class TransformExample(Scene):
    def construct(self):

        banner = ManimBanner()
        banner.shift(UP * 0.5)
        self.play(banner.create(), run_time=1)
        self.play(banner.animate.scale(0.3), run_time=0.5)
        self.play(banner.expand(), run_time=1)

        t = Text("测试中文能否显示").next_to(banner, DOWN * 2)
        tex = VGroup(
            Text("测试数学公式:", font_size=30),
            Tex(r"$\sum_{n=1}^\infty \frac{1}{n^2} = \frac{\pi^2}{6}$"),
        )
        tex.arrange(RIGHT, buff=SMALL_BUFF)
        tex.next_to(t, DOWN)
        self.play(Write(t), run_time=1)
        self.play(Write(tex), run_time=1)

        self.wait()

运行代码的命令:

# 上面的代码文件名称:sample.py
manim -p .\sample.py

环境安装成功的话,运行效果如下:
out.gif

本文关联的微信视频号短视频:
manim-安装-视频号.png

与【manim动画教程】-- 安装相似的内容:

【manim动画教程】-- 安装

manim是基于python语言开发的开源框架,是由 3blue1brown 开发的。 本来是他们自己用来制作数学视频用的,因为其友好的API和漂亮的UI效果,在开源之后,立刻流行起来。 原先开源的地址是: 后来托管给了社区,现在安装最新的版本请从这里下载: 改版之后,命令行更加清晰,简单。 支持的

【manim动画教程】--目录(完结)

manim是一个生成数学教学视频的动画引擎。 它用编程的方式创建精美的数学动画,让数学更加易懂。 本教程简单介绍了 manim 的基本使用方式,基于 v0.17.2 版本 manim 安装 manim是基于python语言开发的开源框架,是由 3blue1brown 开发的。 本来是他们自己用来制作

【manim动画教程】-- 基本图形

制作数学视频时,各类几何图形是使用最频繁的。 一般来说,常用的几何图形包括:点,线,圆以及多边形。 1. 点 点是最简单图形,也是其他所有图形的基础。 绘制其他任何图形时,都是用点来定位的。 manim中生成一个点很方便,只要给定一个坐标即可。 这里的坐标包含 [x, y, z]3个维度,如果绘制二

【manim动画教程】-- 图形样式

manim绘制图形时,除了上一节提到的那些必须的参数,还有一些可选的参数, 这些参数可以控制图形显示的样式。 绘制各类基本图形(点,线,圆,多边形等)时,每个图形都有自己的默认的样式,比如上一节的图形, 有的默认是白色,有的默认是红色。 控制图形样式的参数最常用的有以下四个: stroke_widt

【manim动画教程】-- 文字和公式

manim中提供了两种方式来表示文字信息,一种是 Text系列,一种是 Tex系列。 从目前我自己的使用的体验来看, Text系列在显示文字信息方面,提供了更多的的属性来调整显示效果。如果有大段的文字要排版,或者对文字的显示效果要求高的话,建议使用 Text。 而 Tex系列最大的优势是支持 Lat

【manim动画教程】-- 文本样式

文本的样式主要指颜色和字体相关的属性设置。 对于manim的两个文本对象 Text和 Tex来说, Text对象有更多的属性可以调整样式,相对来说,由于 Tex主要用来显示数学公式,所以关于样式的属性要少一些。 下面介绍一些我在视频制作时最常用的一些颜色和字体相关的属性。 1. 颜色相关 颜色设置主

【manim动画教程】-- 坐标系

没有引入坐标系之前,在绘制图形时,也有一个隐含的坐标系,它和屏幕的像素相关。 比如,我们之前示例中的各个图形,屏幕的中心就是坐标原点([0, 0]), 横轴坐标的范围大概是 [-3.5, 3.5],纵轴的坐标范围大概是 [-4, 4],这个范围与设置的视频分辨率有关,分辨率设置的越高的话,坐标范围越

【manim动画教程】--常用动画效果

manim的主要功能就是制作动画,因此它提供了各类丰富的动画效果, 本篇主要介绍其中最常用的几种动画效果。 至于特殊的动画效果,以及自定义动画效果的方法以后再另外介绍。 1. 创建效果 展示某个元素或者文字时,一下子就全显示出来会显得比较突兀,通过创建效果的动画,让各个元素的出现更加的自然。 常用的

【manim动画教程】--高级动画效果

在常用的动画效果中,介绍了一些元素的创建,销毁,移动和变换的方法,这些方法都是针对单个动画的。 如果需要多个动画互相关联,或者元素需要有更复杂的运动方式,那么,仅仅依靠常用的动画效果可能就无法满足要求了。 本篇的高级动画效果主要介绍一些更加灵活的元素运动方式,如何组合多个动画,以及如何联动多个动画的

【manim动画教程】--相机

相机(Camera)在二维的场景下使用不多,一般在3D场景中提及的比较多。 相机相当于我们看动画的视角,简单来理解的话,相当于我们的眼睛(实际情况会复杂一些,相机还有其他一些辅助功能)。 默认的相机焦点在屏幕的中心位置,相机默认是以俯视的视角查看所有的元素。 之前的介绍的常用动画效果和高级动画效果,