v0.6.0

Date:

2021年5月2日

贡献者

共有40人参与了此版本的贡献。名字旁边带有‘+’的人是首次提交补丁的作者。

  • 阿贝尔·埃布克

  • 阿比吉特·穆提亚拉

  • 亚当·雷茨科夫斯基 +

  • 亚历克斯·莱姆贝克 +

  • 安东·巴尔迈尔

  • Aron

  • 本杰明·哈克尔

  • Darylgolden

  • 德尼兹·哈斯勒 +

  • 德文·尼尔

  • 伊莱莎·霍兰德 +

  • 埃里克·塔斯特佩 +

  • 扬-亨德里克·穆勒

  • 杰森·维拉纽瓦

  • 莱斯·巴霍迪

  • 马克·米勒

  • 穆罕默德·阿尔-费特亚尼

  • 纳文·M·K

  • 纽厄尔·詹森 +

  • 尼达尔·巴库里 +

  • 尼基尔·加鲁达 +

  • Peilonrayz +

  • 拉加夫·戈尔

  • Ricky Chon +

  • friedkeenan

  • kamilczerwinski22 +

  • sparshg

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

  • Aathish Sivasubrahmanian

  • 阿贝尔·埃布克

  • 阿比吉特·穆提亚拉

  • 亚当·雷茨科夫斯基

  • 亚历克斯·莱姆贝克

  • 安东·巴尔迈尔

  • Aron

  • 本杰明·哈克尔

  • Darylgolden

  • 德尼兹·哈斯勒

  • 德文·尼尔

  • 伊莱莎·霍兰德

  • 游戏地牢

  • Hugues Devimeux

  • 扬-亨德里克·穆勒

  • 杰森·维拉纽瓦

  • KingWampy

  • 莱斯·巴霍迪

  • 马克·米勒

  • 穆罕默德·阿尔-费特亚尼

  • 纳文·M·K

  • 尼哈尔·巴库里

  • 尼基尔·加鲁达

  • 奥利弗

  • 菲利普·伊姆霍夫

  • 拉加夫·戈尔

  • Ricky Chon

  • friedkeenan

  • sparshg

合并的拉取请求

本次发布共合并了112个拉取请求。

重大变更

  • #1347: Restructure vector_field module and add documentation

    :class`~.VectorField` is renamed to ArrowVectorField and a new class VectorField is added as a superclass for ArrowVectorField and StreamLines. AnimatedStreamLines is removed. It’s functionality is moved to StreamLines. Added a lot of new options when working with vector fields. ShowPassingFlashWithThinningStrokeWidth was moved to the indication module.

  • #1161: Upgrades to CoordinateSystem and graphing.

    AxesThreeDAxesNumberPlaneNumberLine进行了重大更改。现在,所有这些都使用列表来构建它们的范围,而不是显式定义这些值。x_range已经取代了x_minx_max,并且使用x_step定义步长变得更加容易——> x_range : [x_min, x_max, x_step]。这些类还进行了许多升级,以改进它们的功能和外观。

    NumberLineOld 被引入以继续支持 GraphScene,尽管我们正在逐步淘汰 GraphScene 并计划在未来的版本中弃用它。

  • #1013: Refactored the Command Line Interface to use Click instead of 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: Fix CLI bugs
    • 修复了与-f的冲突,该参数之前同时被分配给--show_in_file_browser--format,现已从--format中移除-f。并发出警告,-f将很快转移到--format

    • 重新添加了标志以将文件渲染为gif/最后一帧。已弃用它们,推荐使用--format

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

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

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

  • #1370: Remove TexMobject and TextMobject

    TexMobject 和 TextMobject 已被弃用一段时间,现在已完全移除。请使用 Tex 或 MathTex 代替。

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

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

新功能

  • #1386: 实现用于添加/删除图顶点和边的实用方法;允许自定义mobjects作为顶点

  • #1385: Added get_line_graph() for plotting a line graph

    添加了get_line_graph(),该函数从沿x、y和z(可选)轴的点列表中返回折线图。

  • #1381: Hot reloading for the OpenGL renderer

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

  • #1383: Overhaul of the indication module interfaces
    • 添加了类 Circumscribe,结合了 CircleIndicateAnimationOnSurroundingRectangleShowPassingFlashAroundShowCreationThenDestructionAroundShowCreationThenFadeAround 的功能,这些类已被弃用。

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

    • ShowCreationThenDestruction 已被弃用,推荐使用 ShowPassingFlash

    • ApplyWave的更改:新的实现提供了更多的灵活性,新增了参数wave_functime_width和`ripples`

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

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

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

  • #1348: 添加了 Polyhedron,以及柏拉图立体 Tetrahedron, Octahedron, IcosahedronDodecahedron

  • #1285: Add interactive_embed() for OpenGL rendering

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

  • #1261: Render image automatically if no animation is played in a scene
    • 如果场景中没有动画并且要求预览/渲染视频,则预览/渲染图像而不是引发令人困惑的错误。

  • #1200: Add text and SVG mobjects to OpenGL

    添加了与OpenGL兼容的文本和SVG mobjects

增强功能

  • #1398: Fix and enhance Mobject.arrange_in_grid

    arrange_in_grid 现在实际上将子对象排列在网格中。新增了参数 buff, cell_alignment, row_alignments, col_alignments, row_heights, col_widths, flow_order

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

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

  • #1391: Add path_arc support to .animate syntax

    参数 path_arcTransform 现在可以与 .animate 语法一起使用

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

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

  • #1359: Make FILE a required argument
    • FILE设为必需参数,manim/cli/render/commands.py:L30

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

  • #1340: Add OpenGL support to the new transform animations

    使FadeTransformFadeTransformPiecesTransformMatchingShapesTransformMatchingTex与OpenGL渲染兼容。

  • #1343: Make TexTemplate() simple, but keep Tex()’s default template

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

  • #1321: 添加OpenGL支持到AnimationGroup

  • #1302: Raise appropriate errors in point_from_proportion()
    • 如果alpha参数不在0和1之间,则引发错误。

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

  • #1315: 修复由#1274引起的get_arc_length()性能问题

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

  • #1234: Added new method get_midpoint()

    实现了get_midpoint()以返回mobject笔画线中点的点。

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

  • #1308: 改进了 ManimBanner 动画

  • #1275: 添加SVG 元素支持到SVGMobject

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

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

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

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

  • #1220: Added sanity checks to add_to_back() for Mobjects

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

  • #1249: Set corners of Rectangle in counterclockwise direction

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

  • #1248: 向TexTemplate添加复制功能

修复的bug

关于测试系统的更改

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

我们的开发基础设施的变化

  • #1436: Cache poetry venv with pyproject.toml hash in key

    使用pyproject.toml哈希值作为键来缓存诗歌虚拟环境

  • #1435: CI: Update poetry cache when new version is released

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

  • #1427: 将URL添加到pyproject.toml

  • #1421: 更新了变更日志生成器的标签,并从变更日志中移除了预提交机器人

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

  • #1257: CI: Caching ffmpeg, tinytex dependencies and poetry venv

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

  • #1294: 在 .pre-commit-config.yaml 中添加了混合行尾

  • #1278: 修复了flake8错误并移除了linter/formatter工作流

  • #1270: 在pre_commit文件中添加了isort

  • #1263: CI: Turn off experimental installer for poetry to fix installation errors
    • 关闭Poetry的实验性安装程序,以防止安装Manim包时出现错误。

    • 将flake检查的py39降级到py38,因为pippoetry不支持py39。

  • #1255: CI: Fix macOS pipeline failure

    更新ci.yml以在安装依赖项之前根据需要更新和升级brew,并删除不受支持的dvisvgm.86_64-darwin包。

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

  • #1216: 使用 actions/checkout 克隆仓库;black-checks

  • #1235: 修复了装饰器版本低于5.0.0的问题

代码质量改进和类似的重构

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

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

  • #1319: Fix mean/meant typo

    修复文档中的拼写错误

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

  • #1292: Remove unnecessary imports from files

    许多文件中的导入减少了

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

  • #1293: Minor fixes - reduce lines

    删除不必要的行

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

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

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

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

新版本