v0.1.0¶
- 日期:
2020年10月21日
这是Manim Community从3b1b/manim分支后的第一个版本。因此,开发者们专注于清理和重构代码库,同时尽可能保持向后兼容性。
新特性¶
命令行¶
“manim –help”的输出已改进。
使用
rich库和logger对象实现日志记录,而不是简单的打印输出。添加了
--dry_run标志,该标志不写入任何媒体文件。允许使用
python3 -m manim运行Manim。重构了Tex模板管理。现在您可以使用
--tex_template命令行参数来使用自定义模板!重新添加
--save_frames标志,该标志会将每一帧保存为PNG图像。重新引入Manim功能,如果您将减号
(-)作为文件名传递,则可以在stdin中输入Manim代码。添加了
--custom_folders标志,该标志会生成更简单的输出文件夹结构。使用
-i标志重新实现GIF导出(使用此标志只输出.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 * UPBOTTOM改为config["frame_height"] / 2 * DOWNLEFT_SIDE改为config["frame_width"] / 2 * LEFTRIGHT_SIDE改为config["frame_width"] / 2 * RIGHTself.camera.frame_rate改为config["frame_rate"]
Mobject对象、场景和动画¶
为
MatrixMobject对象添加可自定义的左右括号,并为矩阵Mobject对象添加set_row_colors方法。添加
AddTeXLetterByLetter动画。增强了GraphScene。
现在可以为坐标轴添加箭头尖端。
在坐标轴的起点和/或终点稍微延伸。
使坐标轴不可见。
高亮显示两条曲线之间的区域。
ThreeDScene现在支持3dillusion_camera_rotation。
添加
z_index用于操作场景中对象的深度。添加
VDict类:VDict之于VGroup,如同dict之于list。添加了场景缓存功能。现在,如果您的代码中的部分电影文件未更改,则不会再次渲染![极不稳定,我们正在努力;)]
大多数
get_和set_方法已被移除,取而代之的是实例属性和特性。将
Container类改为了抽象基类,即无法实例化。请改用其子类之一。TextMobject和TexMobject对象因其令人困惑的名称已被弃用,取而代之的是Tex和MathTex。但是,您仍然可以继续使用TextMobject和TexMobject,尽管会有弃用警告不断提醒您切换。添加了一个
Variable类,用于显示持续更新以反映Python变量值的文本。Tex和MathTex对象允许您使用template关键字参数指定自定义Tex模板。VGroup现在支持打印包含Mobject对象的类名,而VDict支持打印Mobject对象的内部字典。添加了所有标准缓和函数。
Scene现在在调用Scene.render()时渲染,而不是在实例化时渲染。ValueTracker现在支持使用+=运算符进行增量(除了已有的increment_value方法)。添加了
PangoText用于使用Pango渲染文本。
文档¶
添加了更清晰的安装说明、教程、示例和API参考 [正在进行中]
修复¶
目录的初始化已移至
config.py,并修复了许多与文件结构生成相关的错误。非功能性文件
media_dir.txt已移除。非功能性
if语句已从scene_file_writer.py中移除。修复了一个错误,即尝试渲染示例场景而不指定场景时会显示库中的所有场景对象。
许多
Exceptions已被更具体的异常子类取代。修复了
ArcBetweenPoints中的几个细微错误。
对开发者感兴趣的¶
现在通过使用
black工具强制执行Python代码格式化。PR现在需要社区开发者的两次批准代码审查才能合并。
添加了测试以确保提交之间不会出现问题(面向开发者)[使用Github CI和Pytest]。
添加了贡献指南(面向开发者)。
添加了使用sphinx和autodoc/autosummary自动生成的文档[正在进行中]。
使Manim内部使用相对导入。
自
TexTemplate类引入以来,文件tex_template.tex和ctex_template.tex已被移除。增加了日志测试工具。
增加了以JSON格式保存日志的功能。
迁移到Poetry。
颜色已迁移到枚举。
其他更改¶
清理3b1b特定文件。
将包名从manimlib重命名为manim。
将所有导入移至
__init__,因此from manim import *取代from manimlib.imports import *。已移除全局目录变量处理。取而代之的是,如果需要,
initialize_directories会在运行时覆盖cfg文件中的值。