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
作为ArrowVectorField
和StreamLines
的超类。AnimatedStreamLines
已移除,其功能已移至StreamLines
。新增了许多与矢量场相关的新选项。ShowPassingFlashWithThinningStrokeWidth
已移至 indication 模块。
- #1161:CoordinateSystem 和绘图的升级。
对
Axes
、ThreeDAxes
、NumberPlane
和NumberLine
引入了破坏性更改。现在所有上述类都使用列表来构造其范围,而不是显式定义这些值。x_range 已取代 x_min、x_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(可选)轴的点列表返回一个折线图。
- #1385:新增了用于绘制折线图的
- #1381:OpenGL 渲染器的热重载
当输入文件被修改时重新运行场景
- #1383:
indication
模块接口的全面检修 新增了 Circumscribe 类,结合了 CircleIndicate、AnimationOnSurroundingRectangle、ShowPassingFlashAround、ShowCreationThenDestructionAround、ShowCreationThenFadeAround 的功能,这些类都已被弃用。
对 Flash 的更改:flash_radius 参数现在定义动画的内半径。新增了参数 time_width。
ShowCreationThenDestruction 已弃用,取而代之的是 ShowPassingFlash。
对 ApplyWave 的更改:新实现通过新增参数 wave_func、time_width 和 ripples 提供了更大的灵活性。
将 WiggleOutThenIn 重命名为 Wiggle(WiggleOutThenIn 已弃用)。
为以上所有内容添加了文档和示例。
其他小的改进和错误修复。
- #1383:
#1348:新增了
Polyhedron
,以及柏拉图多面体Tetrahedron
、Octahedron
、Icosahedron
和Dodecahedron
- #1285:为 OpenGL 渲染添加
interactive_embed()
interactive_embed()
允许通过鼠标和键盘以及 iPython 终端的动态命令与场景进行交互。
- #1285:为 OpenGL 渲染添加
- #1261:如果在场景中没有播放动画,则自动渲染图像
如果在场景中没有动画并且要求预览/渲染视频,则预览/渲染图像,而不是引发令人困惑的错误。
- #1200:向 OpenGL 添加文本和 SVG mobject
新增了与 OpenGL 兼容的文本和 SVG mobject。
改进¶
- #1398:修复并增强 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:允许将图像对象用作背景图像
- #1364:新增了
match_points()
新增了
match_points()
,它转换 Mobject 的点、位置和子对象以匹配另一个 Mobject,同时保持样式不变。
- #1364:新增了
#1363:更改 TeX 编译器和输出文件格式
- #1359:将 FILE 设置为必需参数
将 FILE 设置为必需参数,manim/cli/render/commands.py:L30
#1304:改进 Tex 字符串在双大括号处的拆分:仅对双大括号组进行拆分
- #1340:为新的变换动画添加 OpenGL 支持
使 FadeTransform、FadeTransformPieces、TransformMatchingShapes 和 TransformMatchingTex 兼容 OpenGL 渲染。
- #1343:使 TexTemplate() 简单化,但保留 Tex() 的默认模板
TexTemplate() 现在返回一个简单的 tex 模板。
#1321:为
AnimationGroup
添加 OpenGL 支持- #1302:在
point_from_proportion()
中引发适当的错误 如果
alpha
参数不在 0 和 1 之间,则引发错误。如果
VMobject
没有点,则引发错误。
- #1302:在
#1315:修复
get_arc_length()
的性能问题,源于 #1274#1320:将 jpeg 扩展名添加到默认图像扩展名中
- #1234:新增方法
get_midpoint()
实现了
get_midpoint()
,用于返回 mobject 描边线的中心点。
- #1234:新增方法
#1237:如果用户使用的是 Manim 的过时版本,则通知用户
#1308:改进了
ManimBanner
动画#1275:为
SVGMobject
添加 SVG <line> 元素支持#1260:将 Brace 从 Tex 更改为 SVG (#1258)
#1122:支持为单个 ImageMobjects 指定插值算法
- #1220:为 Mobject 的
add_to_back()
添加了健全性检查 添加 Mobject add_to_back 健全性检查:- 当 Mobject 尝试添加自身时引发 ValueError - 当添加非 Mobject 时引发 TypeError - 如果列表中已存在该子对象的一个或多个实例,则过滤掉传入的重复子对象
- #1220:为 Mobject 的
#1248:向 TexTemplate 添加 Copy 函数
修复的错误¶
#1368:新增了检查以确保最新版本检查成功
- #1413:防止通过
add_to_back()
添加到子对象时出现相同的 mobject 重复 修复了 #1412
- #1413:防止通过
#1395:SVG 变换现在支持指数表示法(6.02e23)
#1355:重写 put_start_and_end_on 以支持 3D
#1305:自动移除不在
NumberLine
范围内的长刻度线#1296:修复随机管道 TeX 故障
- #1274:修复
point_from_proportion()
以考虑曲线长度。 新增
get_nth_curve_function_with_length()
及相关函数。更改
point_from_proportion()
以使用这些函数来考虑曲线长度。
- #1274:修复
测试系统相关更改¶
#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 中的类型提示
新版本发布¶
#1434:准备 v0.6.0