跳转至

v0.1.0

2020 年 10 月 21 日

这是从 3b1b/manim 分叉后 manimce 的第一个版本。因此,开发人员专注于清理和重构代码库,同时尽可能保持向后兼容性。

新功能

命令行

  1. “manim –help”的输出已得到改进
  2. 使用rich库和logger对象而不是普通的打印来实现日志记录
  3. 添加了一个标志--dry_run,它不写入任何媒体
  4. 允许运行 manimpython3 -m manim
  5. 重构了 Tex 模板管理。您现在可以使用带有命令行参数的自定义模板,使用--tex_template!
  6. 重新添加--save_frames标志,这会将每一帧保存为 png
  7. stdin重新引入 manim 功能,如果您传递减号(-)作为文件名,则可以输入 manim 代码
  8. 添加了--custom_folders可产生更简单的输出文件夹结构的标志
  9. 使用该标志重新实现 GIF 导出-i(使用该标志仅输出 .gif 文件,而不输出 .mp4 文件)
  10. 添加了一个--verbose标志

  11. 您可以使用以下命令将日志保存到文件中--log_to_file

  12. tex_template如果未指定,则从配置文件中读取--tex_template

  13. 添加实验性 javascript 渲染--use_js_renderer

  14. 添加标志和删除标志。-q/--quality [k|p|h|m|l]``-m/-l

  15. 移除--sound标志

配置系统

  1. 实现一个manim.cfg配置文件系统,它整合了全局配置、命令行参数解析以及中定义的一些常量constants.py
  2. 添加了用于操作 Manim.cfg文件的实用程序。
  3. 添加了子命令结构,以便更轻松地使用管理文件的实用.cfg程序
  4. 此外,一些变量已从constants.py新的配置系统中移至:

    1. FRAME_HEIGHTconfig["frame_width"]
    2. TOPconfig["frame_height"] / 2 * UP
    3. BOTTOMconfig["frame_height"] / 2 * DOWN
    4. LEFT_SIDEconfig["frame_width"] / 2 * LEFT
    5. RIGHT_SIDEconfig["frame_width"] / 2 * RIGHT
    6. self.camera.frame_rateconfig["frame_rate"]

Mobjects、场景和动画

  1. Matrix为 mobject 添加可自定义的左括号和右括号,set_row_colors为矩阵 mobject 添加可自定义的方法
  2. 添加AddTeXLetterByLetter动画
  3. 增强的图形场景

    1. 您现在可以向轴添加箭头提示
    2. 在开始和/或结束处稍微延长轴
    3. 有看不见的轴
    4. 突出显示两条曲线之间的区域
  4. ThreeDScene 现在支持 3dillusion_camera_rotation

  5. 添加z_index用于操纵场景中对象的深度。
  6. 添加VDict类:aVDict与 a 的关系相当于VGroupadict与 a 的关系list
  7. 添加了场景缓存功能。现在,如果代码中的部分影片文件未更改,则不会再次渲染它![非常不稳定,我们正在努力解决;)]
  8. 大多数get_方法set_已被删除,以支持实例属性和属性
  9. 该类Container已被制成 AbstractBaseClass,即无法实例化。相反,使用它的子类之一
  10. 由于和对象的名称令人困惑,TextMobject因此TexMobject已被弃用,取而代之的是TexMathTex。但是,您仍然可以继续使用TextMobjectTexMobject,尽管弃用警告不断提醒您进行切换。

  11. 添加一个Variable用于显示文本的类,该文本不断更新以反映 python 变量的值。

  12. 和对象允许您使用关键字参数指定自定义TexTexTemplate 。MathTex``template

  13. VGroup现在支持打印包含的 mobject 的类名并VDict支持打印 mobject 的内部字典

  14. 添加所有标准缓动函数

  15. Scene现在在Scene.render()调用时渲染,而不是在实例化时渲染。

  16. ValueTracker现在支持使用+=运算符进行增量(除了已经存在的 increment_value 方法之外)

  17. 添加PangoText用于使用 Pango 渲染文本。

文档

  1. 添加了更清晰的安装说明、教程、示例和 API 参考 [WIP]

修复

  1. 目录的初始化已移至config.py,并且修复了与文件结构生成相关的一系列错误
  2. 无功能的文件media_dir.txt已被删除
  3. 中的非功能性if语句scene_file_writer.py已被删除
  4. 修复了尝试渲染示例场景而不指定场景会显示库中所有场景对象的错误
  5. 许多Exceptions已被替换为更具体的异常子类
  6. 修复了一些细微的错误ArcBetweenPoints

开发者感兴趣

  1. 现在使用该black工具强制执行 Python 代码格式化
  2. PR 现在需要社区开发人员进行两次批准代码审查才能合并
  3. 添加了测试以确保提交之间的内容不会中断(对于开发人员)[使用 Github CI 和 Pytest]
  4. 添加贡献指南(针对开发者)
  5. 添加了使用 sphinx 和 autodoc/autosummary 自动生成的文档 [WIP]
  6. 使 manim 在内部使用相对导入
  7. 自从引入该类以来TexTemplate,文件tex_template.texctex_template.tex已被删除
  8. 添加了日志记录测试工具。
  9. 添加了以 json 格式保存日志的功能
  10. 转向诗歌。

  11. 颜色已移至枚举

其他变化

  1. 清理 3b1b 特定文件
  2. 将包从 manimlib 重命名为 manim
  3. 将所有导入移至__init__,因此替换from manim import *``from manimlib.imports import *
  4. 全局目录变量处理已被删除。相反initialize_directories,如果需要,可以在运行时覆盖 cfg 文件中的值。