v0.6.0

日期:

2021年5月2日

贡献者

共有40人参与了本次发布。名字旁带有“+”的人员是首次贡献补丁。

  • Abel Aebker

  • Abhijith Muthyala

  • Adam Ryczkowski +

  • Alex Lembcke +

  • Anton Ballmaier

  • Aron

  • Benjamin Hackl

  • Darylgolden

  • Deniz Hasler +

  • Devin Neal

  • Elisha Hollander +

  • Erik Tastepe +

  • Jan-Hendrik Müller

  • Jason Villanueva

  • Laith Bahodi

  • Mark Miller

  • Mohammad Al-Fetyani

  • Naveen M K

  • Newell Jensen +

  • Nidhal Baccouri +

  • Nikhil Garuda +

  • Peilonrayz +

  • Raghav Goel

  • Ricky Chon +

  • friedkeenan

  • kamilczerwinski22 +

  • sparshg

此版本中包含的补丁已由以下贡献者审阅。

  • Aathish Sivasubrahmanian

  • Abel Aebker

  • Abhijith Muthyala

  • Adam Ryczkowski

  • Alex Lembcke

  • Anton Ballmaier

  • Aron

  • Benjamin Hackl

  • Darylgolden

  • Deniz Hasler

  • Devin Neal

  • Elisha Hollander

  • GameDungeon

  • Hugues Devimeux

  • Jan-Hendrik Müller

  • Jason Villanueva

  • KingWampy

  • Laith Bahodi

  • Mark Miller

  • Mohammad Al-Fetyani

  • Naveen M K

  • Nidhal Baccouri

  • Nikhil Garuda

  • Oliver

  • Philipp Imhof

  • Raghav Goel

  • Ricky Chon

  • friedkeenan

  • sparshg

合并的拉取请求

此版本共合并了 112 个拉取请求。

重大更改

  • #1347:重构 vector_field 模块并添加文档

    :class`~.VectorField` 更名为 ArrowVectorField,并新增了一个类 VectorField 作为 ArrowVectorFieldStreamLines 的超类。AnimatedStreamLines 已移除,其功能已移至 StreamLines。新增了许多与矢量场相关的新选项。ShowPassingFlashWithThinningStrokeWidth 已移至 indication 模块。

  • #1161:CoordinateSystem 和绘图的升级。

    AxesThreeDAxesNumberPlaneNumberLine 引入了破坏性更改。现在所有上述类都使用列表来构造其范围,而不是显式定义这些值。x_range 已取代 x_minx_max,并且使用 x_step 定义步长变得更容易 –> x_range[x_min, x_max, x_step]。这些类也进行了多项升级,改善了其功能和外观。

    NumberLineOld 的引入是为了继续支持 GraphScene,尽管我们正在逐渐放弃 GraphScene 并计划在未来版本中弃用它。

  • #1013:重构了命令行接口以使用 Click 而不是 Argparse

    此更改破坏了 CLI API,以重组 Manim Community 命令、选项和参数的结构。

    为了更符合 POSIX 兼容的 CLI 约定,命令的选项应在参数之前给出。在 Argparse 中:manim basic.py -p -ql;在 Click 中:manim -p -ql basic.py

    尽管这主要是一次重构,并且大多数常用选项仍然存在,但一些选项已被添加/移除。使用 manim 命令的 --help 选项,或者直接运行该命令而不提供选项/参数,以查看包含所有子命令/选项/参数的帮助页面。

    • 新增了 --fps/--frame_rate 选项,允许自定义非整数帧率(例如 29.97、23.98 等)。用户不再需要从配置文件中指定帧率。此外,--webgl_renderer_fps 选项已移除。请改用 --fps--frame_rate

    • 新增了 --renderer 选项,您可以使用它来选择渲染器(例如 --renderer=opengl)。目前有 三种 渲染器可供选择!

    • 移除了 --background_color 选项。将 --background_color 选项的缩写 -c 重新分配给 --config_file

    • 移除了 --leave_progress_bars 选项。请改用 --progress_bars=leave

    • 移除了已弃用的渲染质量标志,特别是:-l-m-h-k

    • 移除了 --sound 选项。它在 SoX 被移除后很久就失去了支持。

已废弃的类和函数

  • #1431:修复 CLI 错误
    • 通过从 --format 中移除 -f,解决了 -f--show_in_file_browser--format 之前同时分配的冲突。已发出警告,-f 将很快移至 --format

    • 重新添加了将文件渲染为 gif/最后一帧的标志。已弃用它们,转而支持 --format

    • 修复了损坏的 --output_file/-o 选项。

    • 修复了 -qh 质量选项被解释为 -q -h,从而弹出帮助页面的问题。

  • #1354:重构了 space_ops.py 中的一些函数,弃用了 angle_between()

  • #1370:移除 TexMobject 和 TextMobject

    TexMobject 和 TextMobject 已弃用一段时间,现已完全移除。请改用 Tex 或 MathTex。

  • #1349:移除了已弃用的 SmallDot mobject

  • #1259:移除了已弃用的 CairoText 类

新功能

  • #1386:实现了用于添加/移除图的顶点和边的实用方法;允许将自定义 mobject 用作顶点

  • #1385:新增了用于绘制折线图的 get_line_graph()

    新增了 get_line_graph(),它根据沿 x、y 和 z(可选)轴的点列表返回一个折线图。

  • #1381:OpenGL 渲染器的热重载

    当输入文件被修改时重新运行场景

  • #1383indication 模块接口的全面检修
    • 新增了 Circumscribe 类,结合了 CircleIndicateAnimationOnSurroundingRectangleShowPassingFlashAroundShowCreationThenDestructionAroundShowCreationThenFadeAround 的功能,这些类都已被弃用。

    • Flash 的更改:flash_radius 参数现在定义动画的内半径。新增了参数 time_width

    • ShowCreationThenDestruction 已弃用,取而代之的是 ShowPassingFlash

    • ApplyWave 的更改:新实现通过新增参数 wave_functime_widthripples 提供了更大的灵活性。

    • WiggleOutThenIn 重命名为 WiggleWiggleOutThenIn 已弃用)。

    • 为以上所有内容添加了文档和示例。

    • 其他小的改进和错误修复。

  • #1348:新增了 Polyhedron,以及柏拉图多面体 TetrahedronOctahedronIcosahedronDodecahedron

  • #1285:为 OpenGL 渲染添加 interactive_embed()

    interactive_embed() 允许通过鼠标和键盘以及 iPython 终端的动态命令与场景进行交互。

  • #1261:如果在场景中没有播放动画,则自动渲染图像
    • 如果在场景中没有动画并且要求预览/渲染视频,则预览/渲染图像,而不是引发令人困惑的错误。

  • #1200:向 OpenGL 添加文本和 SVG mobject

    新增了与 OpenGL 兼容的文本和 SVG mobject。

改进

  • #1398:修复并增强 Mobject.arrange_in_grid

    arrange_in_grid 现在实际将子对象排列在网格中。新增了参数 buffcell_alignmentrow_alignmentscol_alignmentsrow_heightscol_widthsflow_order

  • #1407:修复错误并将 vector_coordinate_label() 重命名为 coordinate_label() 并将其移至 geometry.py

  • #1380:允许将图像对象用作背景图像

  • #1391:为 .animate 语法添加 path_arc 支持

    Transform 的参数 path_arc 现在可与 .animate 语法配合使用。

  • #1364:新增了 match_points()
    • 新增了 match_points(),它转换 Mobject 的点、位置和子对象以匹配另一个 Mobject,同时保持样式不变。

  • #1363:更改 TeX 编译器和输出文件格式

  • #1359:将 FILE 设置为必需参数
    • FILE 设置为必需参数,manim/cli/render/commands.py:L30

  • #1304:改进 Tex 字符串在双大括号处的拆分:仅对双大括号组进行拆分

  • #1340:为新的变换动画添加 OpenGL 支持

    使 FadeTransformFadeTransformPiecesTransformMatchingShapesTransformMatchingTex 兼容 OpenGL 渲染。

  • #1343:使 TexTemplate() 简单化,但保留 Tex() 的默认模板

    TexTemplate() 现在返回一个简单的 tex 模板。

  • #1321:为 AnimationGroup 添加 OpenGL 支持

  • #1302:在 point_from_proportion() 中引发适当的错误
    • 如果 alpha 参数不在 0 和 1 之间,则引发错误。

    • 如果 VMobject 没有点,则引发错误。

  • #1315:修复 get_arc_length() 的性能问题,源于 #1274

  • #1320:将 jpeg 扩展名添加到默认图像扩展名中

  • #1234:新增方法 get_midpoint()

    实现了 get_midpoint(),用于返回 mobject 描边线的中心点。

  • #1237:如果用户使用的是 Manim 的过时版本,则通知用户

  • #1308:改进了 ManimBanner 动画

  • #1275:为 SVGMobject 添加 SVG <line> 元素支持

  • #1238:为 rotate() 添加参数 about_point

  • #1260:将 Brace 从 Tex 更改为 SVG (#1258)

  • #1122:支持为单个 ImageMobjects 指定插值算法

  • #1283:将 Scene 中关键字 random_seed 的默认值设置为 None(之前为 0 并已修复)

  • #1220:为 Mobject 的 add_to_back() 添加了健全性检查

    添加 Mobject add_to_back 健全性检查:- 当 Mobject 尝试添加自身时引发 ValueError - 当添加非 Mobject 时引发 TypeError - 如果列表中已存在该子对象的一个或多个实例,则过滤掉传入的重复子对象

  • #1249:将 Rectangle 的角点按逆时针方向设置

    这改善了矩形和其他简单 mobject 之间变换的外观。

  • #1248:向 TexTemplate 添加 Copy 函数

修复的错误

测试系统相关更改

  • #1299:在 GraphicalUnitTest 中,红色像素(不同值)现在显示在绿色像素(相同值)之上

开发基础设施更改

  • #1436:使用 pyproject.toml 散列作为键缓存 poetry 虚拟环境

    使用 pyproject.toml 散列作为键缓存 poetry 虚拟环境。

  • #1435:CI:发布新版本时更新 poetry 缓存

    修复了在使用缓存的 poetry 虚拟环境时 CI 中 test_version 失败的问题。

  • #1427:向 pyproject.toml 添加 URL

  • #1421:更新了更新日志生成器的标签,并从更新日志中移除了 pre-commit 机器人

  • #1339:CI:修复 macOS 在只读文件系统中创建文件导致的安装错误

  • #1257:CI:缓存 ffmpeg、tinytex 依赖项和 poetry 虚拟环境

    CI:缓存 ffmpeg、tinytex 依赖项和 poetry 虚拟环境。

  • #1294:将 mixed-line-ending 添加到 .pre-commit-config.yaml

  • #1278:修复了 flake8 错误并移除了 linter/格式化工具工作流

  • #1270:将 isort 添加到 pre_commit 文件

  • #1263:CI:关闭 poetry 的实验性安装程序以修复安装错误
    • 关闭 poetry 的实验性安装程序,以防止 Manim 包安装错误。

    • 将 flake 检查的 Python 版本从 py39 降级到 py38,因为 pip 不支持 py39,poetry 也不支持。

  • #1255:CI:修复 macOS 管道故障

    更新 ci.yml,在安装依赖项之前如有必要更新和升级 brew,并移除不受支持的 dvisvgm.86_64-darwin 包。

  • #1254:移除了关于 GitHub 不允许在问题模板中上传视频的警告注释。

  • #1216:使用 actions/checkout 克隆仓库;black 检查

  • #1235:修复了 decorator 版本 <5.0.0 的问题

代码质量改进和类似重构

  • #1411:根据 PEP 484 将 Union[float, int] 更改为 float

  • #1241:类型注解:修复静态类型检查工具 mypy 中出现的错误

  • #1319:修复 mean/meant 拼写错误

    修复文档中的拼写错误。

  • #1313:修复文档快速入门页面上的单数拼写错误

  • #1292:从文件中移除不必要的导入

    许多文件中的导入被精简。

  • #1295:修复《行为准则》中的语法和拼写错误

  • #1293:小修复 - 减少行数

    移除不必要的行。

  • #1281:移除我们文件中所有的回车符

  • #1178:使用 Isort 格式化导入

  • #1233:修复 --use_opengl_renderer--use_webgl_renderer 的弃用警告

  • #1282:基于 mypy 修复 vectorized_mobject.py 中的类型提示

新版本发布