v0.1.0
2020 年 10 月 21 日
这是从 3b1b/manim 分叉后 manimce 的第一个版本。因此,开发人员专注于清理和重构代码库,同时尽可能保持向后兼容性。
新功能
命令行
- “manim –help”的输出已得到改进
- 使用
rich
库和logger
对象而不是普通的打印来实现日志记录 - 添加了一个标志
--dry_run
,它不写入任何媒体 - 允许运行 manim
python3 -m manim
- 重构了 Tex 模板管理。您现在可以使用带有命令行参数的自定义模板,使用
--tex_template
! - 重新添加
--save_frames
标志,这会将每一帧保存为 png stdin
重新引入 manim 功能,如果您传递减号(-)
作为文件名,则可以输入 manim 代码- 添加了
--custom_folders
可产生更简单的输出文件夹结构的标志 - 使用该标志重新实现 GIF 导出
-i
(使用该标志仅输出 .gif 文件,而不输出 .mp4 文件) -
添加了一个
--verbose
标志 -
您可以使用以下命令将日志保存到文件中
--log_to_file
-
tex_template
如果未指定,则从配置文件中读取--tex_template
。 -
添加实验性 javascript 渲染
--use_js_renderer
-
添加标志和删除标志。
-q/--quality [k|p|h|m|l]``-m/-l
-
移除
--sound
标志
配置系统
- 实现一个
manim.cfg
配置文件系统,它整合了全局配置、命令行参数解析以及中定义的一些常量constants.py
- 添加了用于操作 Manim
.cfg
文件的实用程序。 - 添加了子命令结构,以便更轻松地使用管理文件的实用
.cfg
程序 -
此外,一些变量已从
constants.py
新的配置系统中移至:FRAME_HEIGHT
到config["frame_width"]
TOP
到config["frame_height"] / 2 * UP
BOTTOM
到config["frame_height"] / 2 * DOWN
LEFT_SIDE
到config["frame_width"] / 2 * LEFT
RIGHT_SIDE
到config["frame_width"] / 2 * RIGHT
self.camera.frame_rate
到config["frame_rate"]
Mobjects、场景和动画
Matrix
为 mobject 添加可自定义的左括号和右括号,set_row_colors
为矩阵 mobject 添加可自定义的方法- 添加
AddTeXLetterByLetter
动画 -
增强的图形场景
- 您现在可以向轴添加箭头提示
- 在开始和/或结束处稍微延长轴
- 有看不见的轴
- 突出显示两条曲线之间的区域
-
ThreeDScene 现在支持 3dillusion_camera_rotation
- 添加
z_index
用于操纵场景中对象的深度。 - 添加
VDict
类:aVDict
与 a 的关系相当于VGroup
adict
与 a 的关系list
- 添加了场景缓存功能。现在,如果代码中的部分影片文件未更改,则不会再次渲染它![非常不稳定,我们正在努力解决;)]
- 大多数
get_
方法set_
已被删除,以支持实例属性和属性 - 该类
Container
已被制成 AbstractBaseClass,即无法实例化。相反,使用它的子类之一 -
由于和对象的名称令人困惑,
TextMobject
因此TexMobject
已被弃用,取而代之的是Tex
和MathTex
。但是,您仍然可以继续使用TextMobject
和TexMobject
,尽管弃用警告不断提醒您进行切换。 -
添加一个
Variable
用于显示文本的类,该文本不断更新以反映 python 变量的值。 -
和对象允许您使用关键字参数指定自定义
Tex
TexTemplate 。MathTex``template
-
VGroup
现在支持打印包含的 mobject 的类名并VDict
支持打印 mobject 的内部字典 -
添加所有标准缓动函数
-
Scene
现在在Scene.render()
调用时渲染,而不是在实例化时渲染。 -
ValueTracker
现在支持使用+=运算符进行增量(除了已经存在的 increment_value 方法之外) -
添加
PangoText
用于使用 Pango 渲染文本。
文档
- 添加了更清晰的安装说明、教程、示例和 API 参考 [WIP]
修复
- 目录的初始化已移至
config.py
,并且修复了与文件结构生成相关的一系列错误 - 无功能的文件
media_dir.txt
已被删除 - 中的非功能性
if
语句scene_file_writer.py
已被删除 - 修复了尝试渲染示例场景而不指定场景会显示库中所有场景对象的错误
- 许多
Exceptions
已被替换为更具体的异常子类 - 修复了一些细微的错误
ArcBetweenPoints
开发者感兴趣
- 现在使用该
black
工具强制执行 Python 代码格式化 - PR 现在需要社区开发人员进行两次批准代码审查才能合并
- 添加了测试以确保提交之间的内容不会中断(对于开发人员)[使用 Github CI 和 Pytest]
- 添加贡献指南(针对开发者)
- 添加了使用 sphinx 和 autodoc/autosummary 自动生成的文档 [WIP]
- 使 manim 在内部使用相对导入
- 自从引入该类以来
TexTemplate
,文件tex_template.tex
和ctex_template.tex
已被删除 - 添加了日志记录测试工具。
- 添加了以 json 格式保存日志的功能
-
转向诗歌。
-
颜色已移至枚举
其他变化
- 清理 3b1b 特定文件
- 将包从 manimlib 重命名为 manim
- 将所有导入移至
__init__
,因此替换from manim import *``from manimlib.imports import *
- 全局目录变量处理已被删除。相反
initialize_directories
,如果需要,可以在运行时覆盖 cfg 文件中的值。