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

manim,动画教程,文字,公式 · 浏览次数 : 456

小编点评

**Text 系列** * 支持任何语言:`Text(\"hello world\")` * 支持中文:`Text(\"こんにちは世界\")` * 可以设置文本格式:`TextText(\"...\")` **Tex 系列** * 支持数学公式:`Tex(r\"$a^2 + b^2 = c^2$\") * 支持列表:`BulletedList(\"$a^2 + b^2 = c^2$\", \"$E = mc^2$\", \"$e^{i\\pi} + 1 = 0$\") * 支持标题:`Title(\"My Title\")` **其他** * Text 系列支持更多属性来调整文本显示效果,例如字体、颜色等。 * Tex 系列只支持英语,对于非英语国家来说,我平时其实基本不怎么使用 BulletedList 和 Titlle的。 * 为了显示中文,可以基于 Text 封装自己的列表和标题对象。

正文

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

Tex系列最大的优势是支持 Latex,也就是说它能更好的显示数学公式。
Tex目前还不支持显示中文,如果一段文本中既有中文又有数学公式的话,需要结合 TextTex一起来显示。

下面介绍 TextTex中几种常用的显示文字和公式的方法。

1. Text

Text系列常用的对象主要有三种:

  1. Text:一般用于单行的文本
  2. Paragraph:一般用于多行的文本
  3. MarkupText:一般用于富文本显示

1.1 一般文本

一般文本 Text支持显示任何语言:

Text("hello world")  # 英文
Text("你好,世界")    # 中文
Text("こんにちは世界") # 日文
Text("Привет, мир")   # 俄文
Text("مرحبا بالعالم", font="sans-serif") # 阿拉伯文

运行效果:
out01.gif

1.2 段落文本

段落文本 Paragraph可以多行文本进行简单的排版:

# 一首简单的古诗
paragraph = Paragraph(
    "   春晓\n",
    "春眠不觉晓",
    "处处闻啼鸟",
    "夜来风雨声",
    "花落知多少",
)

运行效果:
out01.gif

1.3 带标记文本

带标记的文本MarkupText类似HTML,可以像 word 那样提供一些标记文本的功能。

MarkupText("<b>bold</b> <i>斜体文字</i>")
MarkupText("<u>下划线</u> <s>中划线</s>")
MarkupText(
    '<span underline="double">双下划线</span> <span underline="error">错误标记</span>'
)
MarkupText("下标和上标:H<sub>2</sub>O H<sub>3</sub>O<sup>+</sup>")

运行效果:
out01.gif

2. Tex

Tex系列的对象主要是用来显示数学公式,基于Tex之上,manim还封装了列表标题两种常用的对象。
不过,Tex默认只支持显示英文,所以多用于显示公式,显示文本还是 Text系列的对象比较常用。

2.1 数学公式

Tex可以显示任何 Latex格式的数学公式:

Tex(r"$a^2 + b^2 = c^2$")
Tex(r"$E = mc^2$")
Tex(r"$e^{i\pi} + 1 = 0$")

运行效果:
out01.gif

2.2 列表文本

BulletedList会将传入的多个字符串以列表的方式排列起来:

BulletedList("$a^2 + b^2 = c^2$", "$E = mc^2$", "$e^{i\pi} + 1 = 0$")

运行效果:
out01.gif

2.3 标题

Title自动显示在顶部,它和 BulletedList一样,都是为了减轻排版的负担。

import manim
Title(f"Manim version {manim.__version__}")

运行效果:
out01.gif

3. 总结回顾

TextTex都是用来显示文本的,
在使用时,如果我们要显示很多说明文字,且包括英文以外的语言文字,那么,选择Text来显示。
如果显示数学公式,那么毫无疑问,只能选择 Tex

Tex系列的对象只能显示英文,对于我们非英语国家来说,
我平时其实基本不怎么使用 BulletedListTitlle的。

为了显示中文,可以基于 Text封装自己的 列表标题 对象。

本文关联的微信视频号短视频:
manim-文字和公式-视频号.png

与【manim动画教程】-- 文字和公式相似的内容:

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

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

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

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

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

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

【manim动画教程】-- 安装

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

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

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

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

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

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

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

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

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

【manim动画教程】--相机

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

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

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