manim是一个生成数学教学视频的动画引擎。

它用编程的方式创建精美的数学动画,让数学更加易懂。

本教程简单介绍了 manim 的基本使用方式,基于 v0.17.2 版本

  1. manim 安装

    manim是基于python语言开发的开源框架,是由 3blue1brown 开发的。

    本来是他们自己用来制作数学视频用的,因为其友好的API和漂亮的UI效果,在开源之后,立刻流行起来。

  1. manim 基本图形

    制作数学视频时,各类几何图形是使用最频繁的。

    一般来说,常用的几何图形包括:点,线,圆以及多边形。

  1. manim 图形样式

    manim绘制图形时,除了必须的参数之外,还有一些可选的参数,

    这些参数可以控制图形显示的样式。

    控制图形样式的参数最常用的有以下四个:

    1. stroke_width:图形边框的粗细
    2. color:图形的颜色
    3. fill_color:图形的填充色
    4. fill_opacity:填充色的透明度,这个参数一般和 fill_color一起使用

  1. manim 文字和公式

    manim中提供了两种方式来表示文字信息,一种是 Text系列,一种是 Tex系列。

    从目前我自己的使用的体验来看,

    Text系列在显示文字信息方面,提供了更多的的属性来调整显示效果。如果有大段的文字要排版,或者对文字的显示效果要求高的话,建议使用 Text。

    而 Tex系列最大的优势是支持 Latex,也就是说它能更好的显示数学公式。

    Tex目前还不支持显示中文,如果一段文本中既有中文又有数学公式的话,需要结合 Text和 Tex一起来显示。


  1. manim 文本样式

    文本的样式主要指颜色和字体相关的属性设置。

    对于manim的两个文本对象 Text和 Tex来说,

    Text对象有更多的属性可以调整样式,相对来说,由于 Tex主要用来显示数学公式,所以关于样式的属性要少一些。


  1. manim 坐标系

    没有引入坐标系之前,在绘制图形时,也有一个隐含的坐标系,它和屏幕的像素相关。

    引入坐标系之后,绘制图形时就不用局限在屏幕隐含的坐标范围之内,

    通过调整坐标的刻度,我们可以基于坐标系中绘制任意范围的图形,而不用担心绘制到屏幕之外去。


  1. manim 常用动画效果

    manim的主要功能就是制作动画,因此它提供了各类丰富的动画效果,

    本篇主要介绍其中最常用的几种动画效果。

  1. manim 高级动画效果

    在常用的动画效果中,介绍了一些元素的创建,销毁,移动和变换的方法,这些方法都是针对单个动画的。

    如果需要多个动画互相关联,或者元素需要有更复杂的运动方式,那么,仅仅依靠常用的动画效果可能就无法满足要求了。

    本篇的高级动画效果主要介绍一些更加灵活的元素运动方式,如何组合多个动画,以及如何联动多个动画的方式。

    掌握了这些方法,就能够表达出更加复杂的数学几何动画。


  1. manim 相机

    相机(Camera)在二维的场景下使用不多,一般在3D场景中提及的比较多。

    相机相当于我们看动画的视角,简单来理解的话,相当于我们的眼睛(实际情况会复杂一些,相机还有其他一些辅助功能)。

【manim动画教程】--目录(完结)的更多相关文章

  1. ModernUI教程:目录 (完结)

    入门 My first Modern UI app (manually)                         第一个ModernUI应用(手动编写)(已完成) My first Moder ...

  2. canvas基础简单易懂教程(完结,多图)

    目录 Canvas学习 一. Canvas概述 1.1 Hello world 1.2 Canvas的像素化 1.3 Canvas的动画思想 1.4 面向对象思维实现canvas动画 二.Canvas ...

  3. ASP.NET 5系列教程(七)完结篇-解读代码

    在本文中,我们将一起查看TodoController 类代码. [Route] 属性定义了Controller的URL 模板: [Route("api/[controller]") ...

  4. Qt Creator中的3D绘图及动画教程(参照NeHe)

    Qt Creator中的3D绘图及动画教程(参照NeHe) http://blog.csdn.net/cly116/article/details/47184729 刚刚学习了Qt Creator,发 ...

  5. ASP.NET Web API系列教程目录

    ASP.NET Web API系列教程目录 Introduction:What's This New Web API?引子:新的Web API是什么? Chapter 1: Getting Start ...

  6. Qt快速入门系列教程目录

    Qt快速入门系列教程目录

  7. ASP.NET MVC3 系列教程 - 目录

    ASP.NET MVC3 系列教程 - 目录   I:ASP.NET MVC3 新增的功能 ASP.NET MVC3 系列教程 - Razor视图引擎基础语法ASP.NET MVC3 系列教程 - V ...

  8. [js高手之路]html5 canvas动画教程 - 边界判断与小球粒子模拟喷泉,散弹效果

    备注:本文后面的代码,如果加载了ball.js,那么请使用这篇文章[js高手之路] html5 canvas动画教程 - 匀速运动的ball.js代码. 本文,我们要做点有意思的效果,首先,来一个简单 ...

  9. 微信小程序开发教程目录

    本系列教程是自己在工作中使用到而记录的,没有顺序之分 如有错误之处,请给与指正,也不希望误导了别人 微信小程序开发教程目录 微信小程序之注册和入门 微信小程序之HTTPS请求 微信小程序开发之选项卡 ...

  10. [js高手之路]html5 canvas动画教程 - 边界判断与反弹

    备注:本文后面的代码,如果加载了ball.js,那么请使用这篇文章[js高手之路] html5 canvas动画教程 - 匀速运动的ball.js代码. 边界反弹: 当小球碰到canvas的四个方向的 ...

随机推荐

  1. 深入理解 python 虚拟机:原来虚拟机是这么实现闭包的

    深入理解 python 虚拟机:原来虚拟机是这么实现闭包的 在本篇文章当中主要从虚拟机层面讨论函数闭包是如何实现的,当能够从设计者的层面去理解闭包就再也不用死记硬背一些闭包的概念了,因为如果你理解闭包 ...

  2. $GNRMC

    $GNRMC 格式: $GNRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,&l ...

  3. ORB-SLAM3测试

    (一)环境搭建教程 1.Ubuntu18.04从零开始搭建orb slam3及数据集测试:https://blog.csdn.net/Skether/article/details/131320852 ...

  4. Atcoder Regular Contest 165

    B. Sliding Window Sort 2 被题目名里的滑动窗口误导了,于是卡 B 40min /fn Description 给定长度为 \(n\) 的排列 \(P\) 和一个整数 \(K\) ...

  5. Gmail 发送邮件报警

    亲测好使 import smtplib import email.mime.text import time # my test mail mail_username = 'XXXXXXXXXXX@g ...

  6. SMTP操作使用详解并通过python进行smtp邮件发送示例

    转载请注明出处: 1.SMTP       SMTP 的全称是"Simple Mail Transfer Protocol",即简单邮件传输协议.它是一组用于从源地址到目的地址传输 ...

  7. 【MRCTF2020】Ezpop_Revenge——PHP原生类SSRF

    [MRCTF2020]Ezpop_Revenge--PHP原生类SSRF 1. 收获 CMS初审计 google.baidu hack PHP原生类反序列化 2. 看题 2.1 读源码 网页存在源码泄 ...

  8. 上传代码到github和删除.git

    在本地建立目录,将想上传的代码放到该文件夹中 git init ###初始化 git add . ###将本地项目工作区的所有文件添加到暂存区 git commit -m "excu&quo ...

  9. 一行代码修复100vh bug | 京东云技术团队

    你知道奇怪的移动视口错误(也称为100vh bug)吗?或者如何以正确的方式创建全屏块? 一.100vh bug 什么是移动视口错误? 你是否曾经在网页上创建过全屏元素?只需添加一行 CSS 并不难: ...

  10. GoFrame Goland插件

    前言 GoFrame 是一款模块化.高性能.企业级的 Go 基础开发框架.GoFrame 是一款通用性的基础开发框架,是 Golang 标准库的一个增强扩展级,包含通用核心的基础开发组件,优点是实战化 ...