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 * 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"]
Mobject对象、场景和动画¶
为
Matrix
Mobject对象添加可自定义的左右括号,并为矩阵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文件中的值。