v0.6.0
2021 年 5 月 2 日
重大变更
- #1347 : 重构 vector_field 模块并添加文档
:class~.VectorField
被重命名为,并添加ArrowVectorField
一个新类作为和 的超类。已移除。它的功能已转移到. 使用矢量场时添加了许多新选项。被移至指示模块。VectorField
ArrowVectorField
StreamLines
AnimatedStreamLines
StreamLines
ShowPassingFlashWithThinningStrokeWidth
- #1161:升级坐标系统和绘图。
Axes
对、和进行了重大更改ThreeDAxes
, 以上所有内容现在都使用列表来构造其范围,而不是显式定义这些值。x_range 已取代 x_min、x_max ,并且使用 x_step –> : 定义步长要容易得多。这些类别还进行了许多升级,改善了它们的功能和外观。NumberPlane
NumberLine
x_range``[x_min, x_max, x_step]
NumberLineOld
引入是为了继续支持GraphScene
,尽管我们正在放弃 GraphScene 并打算在未来版本中弃用它。
- #1013:重构命令行界面以使用 Click 而不是 Argparse
此更改破坏了 CLI API 来组织 Manim 社区的命令、选项和参数的结构。
为了更符合 POSIX 兼容的 CLI 约定,命令的选项在其参数之前给出。在 Argparse 中: 点击:manim basic.py -p -ql``manim -p -ql basic.py
尽管这主要是重构,并且大多数常见选项仍然存在,但已添加/删除了一些选项。使用manim
命令的--help
选项,或者仅运行命令而不提供选项/参数来查看包含子命令/选项/参数的完整列表的帮助页面。
- 添加了
--fps
/--frame_rate
选项,允许自定义 fps,不必是整数(即 29.97、23.98 等)。用户不再需要在配置文件中指定 FPS。此外,该--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 错误
-
通过从 中删除,修复了
-f
之前分配给 和--show_in_file_browser
的冲突。已发出警告,该警告将很快转移到。--format``-f``--format``-f``--format
- 添加回来的标志将文件渲染为 gif/最后一帧。弃用它们,转而支持
--format
. - 修复了损坏的
--output_file
/-o
选项。 -
-qh
修复了质量选项被解释为-q
-h
,提示帮助页面的问题。 -
#1354 : 重构了 space_ops.py 中的一些函数,已弃用
angle_between()
- #1370 : 删除 TexMobject 和 TextMobject
TexMobject 和 TextMobject 已被弃用一段时间,现在已完全删除。请改用 Tex 或 MathTex。
新功能
添加了get_line_graph()
从沿 x、y 和 z(可选)轴的点列表返回折线图的功能。
- #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 已弃用)
- 为上述所有内容添加了文档和示例
-
其他小的改进和错误修复
-
#1348:添加,
Polyhedron
和柏拉图固体Tetrahedron
,,Octahedron
和Icosahedron
Dodecahedron
- #1285 : 添加
interactive_embed()
OpenGL 渲染
interactive_embed()
允许通过鼠标和键盘与场景交互,以及通过 iPython 终端进行动态命令。
-
#1261:如果场景中没有播放动画,则自动渲染图像
-
如果场景中没有动画并要求预览/渲染视频,则预览/渲染图像而不是引发令人困惑的错误。
-
#1200 : 将文本和 SVG mobject 添加到 OpenGL
添加了兼容 OpenGL 的文本和 SVG mobjects
增强功能
- #1398 : 修复并增强 Mobject.arrange_in_grid
range_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 : 将 path_arc 支持添加到.animate 语法
参数 path_arc 现在Transform
适用于.animate 语法
-
添加了
match_points()
,它可以转换 Mobject 的点、位置和子对象以匹配另一个 Mobject,同时保持样式不变。 -
#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 : 添加 OpenGL 支持
AnimationGroup
-
#1302:提出适当的错误
point_from_proportion()
-
alpha
如果参数不在 0 和 1 之间,则引发错误。 -
VMobject
如果没有分数,则引发错误。 - #1320 : 将 jpeg 扩展名添加到默认图像扩展名中
- #1234:添加了新方法
get_midpoint()
实现get_midpoint()
以返回 mobject 笔画线的中间点。
- #1237:通知用户是否使用过时版本的 Manim
- #1308:改进的
ManimBanner
动画 - #1275 : 添加 SVG
元素支持 SVGMobject
- #1238 : 添加
about_point
参数rotate()
- #1260:将大括号从 Tex 更改为 SVG (#1258)
- #1122:支持为单个 ImageMobject 指定插值算法
- #1283 : 将关键字的默认值设置
random_seed
为(之前Scene
为None
0 并固定) - #1220
add_to_back()
:为 Mobject 添加健全性检查
添加 Mobject add_to_back 健全性检查: - 当 Mobject 尝试添加自身时引发 ValueError - 添加非 Mobject 时引发 TypeError - 如果列表中至少存在该子对象的一个 实例,则过滤掉传入的重复子对象
这改善了矩形和其他简单对象之间转换的外观。
- #1248 : 为 TexTemplate 添加复制功能
修复了错误
- #1368:添加了检查以确保检查最新版本成功
- #1413 : 通过添加到子对象时防止相同对象的重复
add_to_back()
修复#1412
- #1395 : SVG 转换现在处理指数符号 (6.02e23)
- #1355 : 重写 put_start_and_end_on 以在 3D 中工作
- #1346:修复了杂散打印引入的错误
MathTex
- #1305 : 自动删除不在范围内的长刻度线
NumberLine
- #1296 : 修复随机管道 TeX 故障
-
#1274:修复
point_from_proportion()
以考虑曲线的长度。 - 更改
point_from_proportion()
为使用这些函数来考虑曲线长度。
与文档相关的更改
-
#1430:未弃用的 GraphScene(稍后将弃用),修复了对 NumberPlane 的旧式调用
-
为了通过 Axes 完全替换 GraphScene 需要做更多的工作,因此 GraphScene 尚未被弃用。
-
修复了使用旧 NumberPlane 语法的一个示例。
-
#1425:在自述文件中添加了“如何引用 Manim”部分
- #1387:添加了将 GitHub Wiki 中的示例贡献到文档的指南
添加了指南
- #1424:修复了所有当前的文档构建警告
- #1389:向文档添加警告教程
- #1341:降低 ThreeDSurfacePlot 示例的复杂性
- #1362:模块快速参考
- #1376 : 在文档中添加 flake8 和 isort
在文档中添加了“flake8”和“isort”用法
- #1360:文档中的语法错误更正
更改了 docs/source 中的几句话
- #1351:更多的打字提示
- #1358:修复了开发人员安装说明的链接
- #1338:添加了类型提示的文档指南
- #1342 : 文档的多个 ValueTracker 示例
- #1210:添加了有关 mobject 坐标的教程章节
- #1335 : 在文档中的示例中添加了导入语句
- #1245 : 添加填充角度示例
- #1328:文档:更新大括号示例
- #1326:改进文档
ManimMagic
(特别是:修复 CLI 标志的文档顺序) - #1323:黑化文档字符串
- #1300:添加了类型提示
ValueTracker
- #1301:添加了更多文档字符串和类型提示
Mobject
- #1298 : 为第一个代码示例添加双反引号(value_tracker.py)
- #1297 : 更改文档以使用 viewcode 扩展而不是 linkcode
切换sphinx.ext.linkcode
到并在 中sphinx.ext.viewcode
删除。linkcode_resolve``conf.py
- #1246:添加了文档字符串
ValueTracker
- #1251 : 将文档从 guzzle-sphinx-theme 切换到 Furo
- #1232:更多文档字符串和示例
Mobject
- #1291:README.md 中的语法改进
- #1269:添加有关的文档
set_color_by_tex()
- #1284:通过提供 example_scenes 的正确链接更新了自述文件
- #1029 : 将示例 jupyter 笔记本添加到示例文件夹中
- #1279 : 在 pyproject.toml 中添加了 sphinx 要求
想要构建 sphinx 文档的新贡献者有一个额外的步骤,可以通过使用. 这消除了开发人员对.poetry install``pip install -r requirements.txt
- #1268:添加了解释 manim 版本之间差异的文档
- #1247:添加了使用 animate 的警告
- #1242 : 添加了 manim 颜色图的示例
- #1239 : 添加 TinyTex 安装说明
- #1231 : 改进变更日志生成脚本
有关测试系统的更改
- #1299:在 GraphicalUnitTest 中,红色像素(不同值)现在出现在绿色像素(相同值)上
我们的开发基础设施的变化
- #1436 : 使用 pyproject.toml 哈希键缓存诗歌 venv
使用 pyproject.toml 哈希键缓存诗歌 venv
- #1435:CI:新版本发布时更新诗歌缓存
修复使用缓存诗歌 venv 时 CI 中 test_version 失败的问题
- #1427 : 将 URL 添加到 pyproject.toml
- #1421:更新了变更日志生成器的标签并从变更日志中删除了预提交机器人
- #1339:CI:修复在只读文件系统中创建文件时出现的 macOS 安装错误
- #1257:CI:缓存 ffmpeg、tinytex 依赖项和诗歌 venv
CI:缓存 ffmpeg、tinytex 依赖项和诗歌 venv
- #1294 : 将混合行结尾添加到 .pre-commit-config.yaml
- #1278:修复 flake8 错误并删除 linter/formatter 工作流程
- #1270 : 将 isort 添加到 pre_commit 文件
-
#1263:CI:关闭诗歌实验安装程序以修复安装错误
-
关闭诗歌的实验性安装程序,以防止包的 manim 安装错误。
-
将 py39 降级到 py38 以进行薄片检查,因为 pip 不喜欢 py39 以及诗歌。
-
#1255:CI:修复 macOS 管道故障
在安装依赖项之前,如有必要,请更新 ci.yml 以更新和升级 brew,并删除不受支持的 dvisvgm.86_64-darwin 软件包。
代码质量改进和类似的重构
修复文档中的拼写错误
导入减少了一堆文件
删除不必要的行
- #1281:删除文件中的所有回车符
- #1178:使用 Isort 格式化导入
- #1233 : 修复
--use_opengl_renderer
和 的弃用警告--use_webgl_renderer
- #1282 : 修复基于 mypy 的 vectorized_mobject.py 中的输入提示
新发布
- #1434:准备 v0.6.0