安装问题¶
安装时最好不要看README.md
自己研究,
推荐一视数学卷毛杨的两个教程:
Python
问题¶
Q1: 使用anaconda
,命令行输入python
无反应或报错¶
考虑path
环境变量是否填全 1,path
变量里应该有:
<your_path>\Anaconda3;
<your_path>\Anaconda3\Scripts;
<your_path>\Anaconda3\Library\bin;
Q2: pip install ...
时满屏红字报错,或者安装过慢¶
更换国内镜像源,使用
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
代替 2
pip install -r requirements.txt
Q4: pip
安装过包,但运行时提示没有模块¶
考虑电脑上是否有多个Python
,确定pip
把包装到了需要使用的Python
上面。
Q5: 关于scipy
有报错¶
可能是版本不对,使用pip uninstall
后重新pip install scipy
运行时问题¶
import
问题¶
Q1: 没有模块big_ol_pile_of_manim_imports
¶
将文件中的
from big_ol_pile_of_manim_imports import *
改成
from manimlib.imports import *
LaTeX问题¶
Q1: 报错Latex error converting to dvi
¶
先不要管错误在哪,先把manimlib/constants.py
中的TEX_USE_CTEX
改成True
再运行
Q2: 报错 xelatex error converting to xdv
¶
若为Windows
系统,先把manimlib/constants.py
的第29行:
MEDIA_DIR = "./media"
改成
MEDIA_DIR = os.path.join(os.getcwd(), "media")
再进行尝试
若安装的TeX发行版为MiKTeX
MiKTeX
的有关路径是否添加到环境变量中是否有包没有装全
对于2.
,可以正常运行一遍WriteStuff
场景,看是否有框弹出提示install
什么东西, 如果有,则install
,并重复运行安装运行安装…直到不报错为止。或者使用TeX编辑器TeXStudio
并使用xelatex
手动编译media/Tex
文件夹中的.tex
文件,查看是否有包没有安装。对于没有
1.
和2.
问题却依旧报错的,可以选择重新安装新版MiKTeX
或者安装TeXLive-full
版。若安装的TeX发行版为TeXLive
TeXLive
有关路径是否添加到环境变量中安装的是否为
full
版本
若安装的TeX发行版不为以上两款
建议换成
TeXLive-full
版或者MiKTeX
,并且在重新安装前请删除旧版
中文显示问题¶
Q1: 含有中文的TextMobject
编译报错,Latex error converting to dvi
¶
将manimlib/constants.py
中的TEX_USE_CTEX
改成True
再尝试
Q2: 英文可以正常显示,中文不报错,但不显示¶
考虑使用的是否为TextMobject
而不是TexMobject
文字问题¶
Q1: TextMobject
和TexMobject
有什么区别¶
TextMobject
和TexMobject
使用的都是LaTeX语法
其中TextMobject
文字模式相当于直接在LaTeX环境下书写
TexMobject
公式模式使用的是LaTeX的 \begin{align*}
环境或者可以看成加了\(\texttt{\$}\texttt{\$}\)的环境
使用TextMobject
与TexMobject
书写公式时:
Q2: TextMobject
中怎么改字体样式¶
TextMobject
中只能使用LaTeX的字体样式
字体常用样式命令见表:
字体样式 |
LaTeX命令 |
字体样式 |
LaTeX命令 |
---|---|---|---|
roman |
|
bold face |
|
sans serif |
|
medium weight |
|
|
|
italic |
|
Small Caps |
|
slanted |
|
upright |
|
严格地讲中文字体并没有衬线、无衬线、等宽、斜体等概念
Q3: 想自定义字体怎么办¶
使用新版manim
特有的Text()
类,
方法如下Text("文字", font="字体")
,
其中字体要填写在计算机内存储的格式 5,但是不能使用LaTeX语法书写公式
Q4: 想用自定义字体写公式怎么办¶
可以使用群文件里cigar666
编写的MyText()
类
Q6: 公式怎么对齐¶
直接在
TexMobject
中使用&
对齐两个
mobject
对齐,使用obj2.next_to(obj1, DOWN, aligned_edge=LEFT)
使obj2
在obj1
下方,并左对齐VGroup
内对齐,使用group.arrange(DOWN, aligned_edge=LEFT)
使VGroup
中的子元素依次向下排开,并左对齐
写公式的示例:
Q7: TexMobject
上色问题的处理办法¶
将上色的字符分开,使用
text[i].set_color(color)
来上色将上色的字符分开,使用
text.set_color_by_tex_to_color_map(t2c)
传入t2c
字典来对相同的字符串上色只传入一个字符串,但同时传入
tex_to_color_map=t2c
来自动拆分上色(容易出问题)只传入一个字符串,使用
text[0][i]
来对细小的路径上色(一般是一个字符一个下标)
Q8: TexMobject
的下标怎么分析¶
Q9: TexMobject
使用 \frac
拆分时出错¶
这个是Grant
写tex_file_writing.py
的一个bug
,
建议使用{
分子 \over
分母}
来代替
\frac{
分子}{
分母}
Q10: 括号匹配不全¶
显示不全的例子
TexMobject(r"\left\{\begin{matrix} a+b \\ b+a \\ \end{matrix}\right.")
matrix
这样的写法在manim
中会报错,无法生成dvi
,
原因是manim
会自动寻找相对应的括号来匹配,这里缺少了右边的大括号
所以推荐使用cases
环境,效果是一样的:
TexMobject(r"\begin{cases} a+b \\ b+a \\ \end{cases}")
其它问题¶
Q1: 有什么manim教程¶
https://github.com/manim-kindergarten/manim这里的README
文件中也有整合
MK
制作的系列视频教程(制作中)群主
cigar666
的B站专栏pdcxs
大大转载的manim
教程GitHub
上cai-hust
的中文教程看
manim
源码
Q2: 没有manim
源码¶
最好不要使用pip install manimlib
来装manim
,请在GitHub
上clone
下来manim
的全部内容,
可以选择MK
修改的版本:https://github.com/manim-kindergarten/manim
Q3: 群友用的manim
都是什么版本¶
manim
不看版本,一般使用的都是最新库,release
里面带版本号的都可以看作旧版
Q4: 如何使用傅里叶级数作图¶
套用 Grant 写好的文件
from_3b1b/active/diffyq/part2/fourier_series.py
from_3b1b/active/diffyq/part4/fourier_series_scenes.py
from_3b1b/active/diffyq/part4/long_fourier_series.py
Q5: 傅里叶级数作图如何调整时长¶
CONFIG
中run_time
无法控制,使用slow_factor
和n_cycles
来控制
\(\mathtt{\dfrac{1}{slow\_factor}}\)为一个循环的时间,n_cycles
为循环的个数
只需要更换svg
素材即可 9
Q7: 动画怎么显示旋转一个物体¶
使用Ratate
和Rotating
,区别在群文件中有视频
Q8: Transform
和ReplacementTransform
有什么区别¶
Transform(A, B)
在画面上A
变成了B
的样子,但是画面上的物体名字还叫A
ReplacementTransform(A, B)
在画面上A
变成了B
的样子,并且画面上的物体名字叫B
所以以下两个效果相同
self.play(Transform(A, B))
self.play(Transform(A, C))
self.play(ReplacementTransform(A, B))
self.play(ReplacementTransform(B, C))
Q9: 怎么控制物体移动或者Transform
的速率¶
使用rate_func
,一些manim
中已经定义的在群文件中有视频
Q10: 数学符号/公式 用LaTeX怎么打¶
请见 https://www.luogu.com.cn/blog/IowaBattleship/latex-gong-shi-tai-quan
推荐妈咪叔维护的https://www.latexlive.com/
Q11: 一些特殊LaTeX的外部包¶
如何使用manim画出上面的音符,或怎么使用这些包?
在manimlib
目录下的ctex_template.tex
或者tex_template.tex
文件中
添加外部包的名称 10
就拿上面的音符为例,因为是在harmony
包中的,所以在tex
文件中添加\usepackage{harmony}
11
然后新建一个py
文件,写入代码
from manimlib.imports import *
class TestHarmony(Scene):
def construct(self):
# harmony具体用法请百度
harmony = TextMobject(r"\Ganz \Halb \Vier \Acht \Sech \Zwdr")
self.play(ShowCreation(harmony))
self.wait()
运行py文件即可
Q12: 使用LaTeX外部包,编译错误或者无显示¶
首先,并不是所有外部包都能在manim
中顺利使用,大多都不支持xelatex
编译,
所以建议需要使用外部包时只用latex
编译 12
至于有些群友常用TiKZ
这个外部包,也是使用latex
才能顺利运行,
在xelatex
用 \draw
会无法显示,
需要修改tex_template.tex
文件[change],修改成如下:
\documentclass[preview, dvisvgm]{standalone}
\usepackage{tikz}
新建py
文件,写入代码来画一条线:
class TestTikz(Scene):
def construct(self):
tikz = TextMobject(
# tikz具体用法请百度
r"\tikz{\draw (-1, 0) -- (1, 0);}",
color=WHITE,
stroke_width=1,
stroke_opacity=1,
)
self.play(ShowCreation(tikz))
self.wait()
运行py文件即可
Q13: 一些比较复杂,操纵东西比较多的动画怎么做¶
使用外部剪辑软件,例如Adobe Premiere Pro
或者达芬奇
Q14: 一个self.play
里写两个ApplyMethod
只对一个起作用怎么办¶
去掉ApplyMethod
,例如:
self.play(ApplyMethod(mob.scale, 2), ApplyMethod(mob.shift, DOWN))
改成
self.play(mob.scale, 2, mob.shift, DOWN)
Q15: 如何解决二维画面中的图层问题¶
可以使用pdcxs
添加的plot_depth
,具体更改见下图 13
MK fork
的版本已经做了修改:https://github.com/manim-kindergarten/manim
Q16: 如何导出gif
文件¶
在新版本中,manim
导出gif
已经失效,可以导出mp4
,后用ffmpeg
转换。也可以按照下图修改源码
MK fork
的版本已经做了修改:https://github.com/manim-kindergarten/manim
改过后,在输入命令时加上-i
选项,就能导出gif
了
Q17: 如何导出透明的图片或者视频¶
在运行命令的时候加上 -t
选项
如果是
-s
保存图片,则会存储为背景透明的png
图片如果是
-l/-m/-w
保存视频,则会存储为背景透明的mov
视频文件,方便pr
中的剪辑
Q18: 渲染视频的画质和帧率怎么调整¶
manim
的默认画质有四种
-l
最低画质480P15
-m
中等画质720P30
–high_quality
14 高画质1080P60
-w
导出(最高)画质1440P60(2K)
-uhd
超高清4K120fps
(B站最高) 15
不加画质选项,默认使用 -w
最高画质 16。
可以通过修改constants.py
中对应的画面长宽和帧率来修改 17
一般把 -w
最高画质修改成1080P60
Q19: 有没有什么好的场景例子供学习¶
GitHub
上manim-kindergarten/manim_sandbox
中的demo
和videos
文件夹中的代码Grant
的代码 18 对应3B1B
的视频,可能会有报错,需要魔改群文件里“
manim
相关的python
代码及视频结果”群里几个B站
up
主的GitHub
库对应他们的代码
- 1
安装
anaconda
时是否勾选添加到path
变量- 2
临时换源
- 3
群文件中有某个版本的
pycairo
,注意Python
版本和系统版本是否均合适- 4
上网下载、或者使用群文件中的版本
- 5
例如:Microsoft YaHei,Source Han Sans CN(Windows可以打开C:/Windows)
- 6
或者在字符串前加r,正常书写
- 7
https://github.com/manim-kindergarten/manim_sandbox/blob/master/utils/functions/debugTeX.py
- 8
-s 选项
- 9
自己制作,或者使用群里的
svg
素材- 10
修改
TEX_USE_CTEX
为True
的,可以只在ctex_template.tex
中添加- 11
不需要使用的时候记得改回来哦[change]
- 12
即把
TEX_USE_CTEX
改为False
- 13
plot_depth
的值越大,运行出来的物体就越在上面- 14
没有缩写
- 15
仅限
MK
版本manim
- 16
比如
-p
(虽然很多人把-p
当成了-w
。。。)- 17
manimlib/constants.py
的118
行开始- 18
from_3b1b
文件夹中