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
ArrowVectorFieldand a new classVectorFieldis added as a superclass forArrowVectorFieldandStreamLines.AnimatedStreamLinesis removed. It’s functionality is moved toStreamLines. Added a lot of new options when working with vector fields.ShowPassingFlashWithThinningStrokeWidthwas moved to the indication module.
- #1161: Upgrades to CoordinateSystem and graphing.
对
Axes、ThreeDAxes、NumberPlane和NumberLine进行了重大更改。现在,所有这些都使用列表来构建它们的范围,而不是显式定义这些值。x_range已经取代了x_min、x_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: 移除了已弃用的
SmallDotmobject#1259: 移除了已弃用的CairoText类
新功能¶
#1386: 实现用于添加/删除图顶点和边的实用方法;允许自定义mobjects作为顶点
- #1385: Added
get_line_graph()for plotting a line graph 添加了
get_line_graph(),该函数从沿x、y和z(可选)轴的点列表中返回折线图。
- #1385: Added
- #1381: Hot reloading for the OpenGL renderer
当输入文件被修改时重新运行场景
- #1383: Overhaul of the
indicationmodule interfaces 添加了类 Circumscribe,结合了 CircleIndicate、AnimationOnSurroundingRectangle、ShowPassingFlashAround、ShowCreationThenDestructionAround、ShowCreationThenFadeAround 的功能,这些类已被弃用。
对Flash的更改:flash_radius参数现在定义了动画的内半径。新增了time_width参数。
ShowCreationThenDestruction 已被弃用,推荐使用 ShowPassingFlash
对ApplyWave的更改:新的实现提供了更多的灵活性,新增了参数wave_func、time_width和`ripples`
将WiggleOutThenIn重命名为Wiggle(WiggleOutThenIn已被弃用)
为上述所有内容添加了文档和示例
其他小的改进和错误修复
- #1383: Overhaul of the
#1348: 添加了
Polyhedron,以及柏拉图立体Tetrahedron,Octahedron,Icosahedron和Dodecahedron- #1285: Add
interactive_embed()for OpenGL rendering interactive_embed()允许通过鼠标和键盘与场景进行交互,以及通过iPython终端进行动态命令。
- #1285: Add
- #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: 允许图像对象作为背景图像
- #1364: Added
match_points() 添加了
match_points(),它转换Mobject的点、位置和子对象以匹配另一个Mobject,同时保持样式不变。
- #1364: Added
#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
使FadeTransform、FadeTransformPieces、TransformMatchingShapes和TransformMatchingTex与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没有点,则引发错误。
- #1302: Raise appropriate errors in
#1315: 修复由#1274引起的
get_arc_length()性能问题#1320: 将jpeg扩展名添加到默认图像扩展名中
- #1234: Added new method
get_midpoint() 实现了
get_midpoint()以返回mobject笔画线中点的点。
- #1234: Added new method
#1237: 如果用户使用的是旧版本的Manim,通知用户
#1308: 改进了
ManimBanner动画#1275: 添加SVG
元素支持到 SVGMobject#1260: 将Brace从Tex更改为SVG (#1258)
#1122: 支持为单个ImageMobjects指定插值算法
- #1220: Added sanity checks to
add_to_back()for Mobjects 添加Mobject add_to_back 的健全性检查: - 当Mobject尝试添加自身时,抛出ValueError - 当添加非Mobject时,抛出TypeError - 如果列表中已存在该子对象的至少一个实例,则过滤掉传入的重复子对象
- #1220: Added sanity checks to
#1248: 向TexTemplate添加复制功能
修复的bug¶
#1368: 添加了一个检查以确保检查最新版本成功
- #1413: Prevent duplication of the same mobject when adding to submobjects via
add_to_back() 修复 #1412
- #1413: Prevent duplication of the same mobject when adding to submobjects via
#1395: SVG 变换现在支持指数表示法 (6.02e23)
#1355: 重写 put_start_and_end_on 以在3D中工作
#1305: 自动移除不在
NumberLine范围内的长刻度线#1296: 修复随机管道 TeX 失败
- #1274: Fix
point_from_proportion()to account for the length of curves. 添加
get_nth_curve_function_with_length()及相关函数。将
point_from_proportion()更改为使用这些函数以考虑曲线长度。
- #1274: Fix
关于测试系统的更改¶
#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,因为pip和poetry不支持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中的类型提示
新版本¶
#1434: 准备 v0.6.0