v0.1.0¶
- Date:
2020年10月21日
这是从3b1b/manim分叉后的manimce的第一个版本。因此,开发者们专注于清理和重构代码库,同时尽可能保持向后兼容性。
新功能¶
命令行¶
'manim –help' 的输出已改进
使用
rich库和logger对象实现日志记录,而不是简单的打印添加了一个标志
--dry_run,它不会写入任何媒体允许使用
python3 -m manim运行 manim重构了Tex模板管理。您现在可以使用命令行参数
--tex_template来使用自定义模板!重新添加
--save_frames标志,该标志将保存每一帧为png重新引入manim功能,允许你在传递减号
(-)作为文件名时,在stdin中输入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 * UPBOTTOM到config["frame_height"] / 2 * DOWNLEFT_SIDE到config["frame_width"] / 2 * LEFTRIGHT_SIDE到config["frame_width"] / 2 * RIGHTself.camera.frame_rate到config["frame_rate"]
Mobjects、场景和动画¶
为
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关键字参数指定自定义的 TexTemplate。VGroup现在支持打印包含的mobjects的类名,VDict支持打印mobjects的内部字典添加所有标准的缓动函数
Scene现在在调用Scene.render()时渲染,而不是在实例化时渲染。ValueTracker现在支持使用 += 运算符进行增量操作(除了已经存在的 increment_value 方法之外)添加
PangoText用于使用 Pango 渲染文本。
文档¶
添加了更清晰的安装说明、教程、示例和API参考 [进行中]
修复¶
目录的初始化已移至
config.py,并且修复了与文件结构生成相关的一堆错误非功能性文件
media_dir.txt已被移除在
scene_file_writer.py中的非功能性if语句已被移除修复了一个错误,该错误发生在尝试渲染示例场景时,如果没有指定场景,则会显示库中的所有场景对象
许多
Exceptions已被更具体的异常子类替换修复了
ArcBetweenPoints中的几个细微错误
开发者感兴趣的内容¶
Python代码格式化现在通过使用
black工具强制执行PRs 现在需要社区开发者的两次批准代码审查才能合并
添加了测试以确保在提交之间不会出现问题(针对开发者)[使用Github CI和Pytest]
添加贡献指南(针对开发者)
添加了使用sphinx和autodoc/autosummary自动生成的文档 [进行中]
使manim内部使用相对导入
自从引入
TexTemplate类以来,文件tex_template.tex和ctex_template.tex已被移除添加了日志记录测试工具。
增加了将日志保存为json的能力
转向诗歌。
颜色已移至枚举
其他变更¶
清理3b1b特定文件
将包名从manimlib重命名为manim
将所有导入移动到
__init__,以便from manim import *替换from manimlib.imports import *全局目录变量处理已被移除。如果需要,
initialize_directories会在运行时覆盖配置文件中的值。