v0.16.0

日期:

2022年7月13日

贡献者

共有44人为此版本做出了贡献。名字旁带有“+”的人是首次提交补丁。

  • Alex Lembcke

  • Baroudi Aymen +

  • Benjamin Hackl

  • Charalampos Georgiou +

  • Cindy Park +

  • Ejar +

  • Francesco Frassinelli +

  • Francisco Manríquez Novoa +

  • Jacob Evan Shreve +

  • Jaime Santos +

  • Jonathan Alpert

  • Joshua Mankelow +

  • Kevin Lubick +

  • Laith Bahodi

  • Lingren Kong +

  • Logen +

  • Naveen M K

  • Noam Zaks

  • Pedro Lamkowski +

  • Raghav Goel

  • Simeon Widdis

  • Sparsh Goenka

  • TornaxO7 +

  • Tristan Schulz +

  • WillSoltas

  • ad_chaos

  • conor-oneill-2 +

  • fcrozatier +

  • mooncaker816 +

  • niklebedenko +

  • nyabkun +

  • quark67

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

  • Alex Lembcke

  • Benjamin Hackl

  • Darylgolden

  • Francesco Frassinelli

  • Francisco Manríquez Novoa

  • Gianluca Gippetto

  • Jan-Hendrik Müller

  • Jonathan Alpert

  • Kevin Lubick

  • Laith Bahodi

  • Naveen M K

  • Pedro Lamkowski

  • Philipp Imhof

  • Raghav Goel

  • Ryan McCauley

  • Sparsh Goenka

  • TornaxO7

  • Tristan Schulz

  • ad_chaos

  • hickmott99

合并的拉取请求

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

亮点

  • #2550: 新主题指南:深入探讨库的内部机制

    这份新的主题指南旨在全面介绍Manim在运行时为生成视频所做的一切。

  • #2732: 改进了已部署文档的整体结构;新增了专门的常见问题解答(FAQ)部分

  • #2749: 添加了ChangeSpeed,这是一个动画包装器,允许平滑地改变动画播放的速度

    可以通过使用ChangeSpeed包装动画,并传入一个字典作为speedinfo来改变任何动画的速度,该字典的键是相对动画运行时间戳,值是绝对速度因子;例如,{0.5: 2, 0.75: 0.25}表示当动画完成50%时,速度将平滑地加快2倍,然后在动画完成75%后,速度将平滑地减慢到默认运行速度的1/4。run_time动画的运行时间将根据播放速度的改变进行调整。

    还可以添加尊重速度变化的时间基更新器,使用辅助方法ChangeSpeed.add_updater()来完成。

新功能

  • #2667: 使FFmpeg可执行路径可配置

  • #2739: 添加了通过关键字参数use_vectorized实现的矢量化绘图功能,以提高性能

改进

  • #2186: 启用了OpenGLSurface按值填充颜色,将Surface.set_fill_by_value()colors关键字参数替换为colorscale

  • #2288: 尝试将相同的mobject添加为子对象两次时,新增警告

  • #2707: 修复了OpenGLVMobject缺少get_nth_curve_length_pieces方法的问题
    • 移除了OpenGLVMobjectget_curve_functions_with_lengths的重复定义

    • 新增了get_nth_curve_length_piecesOpenGLVMobject的定义

  • #2709: 改进了Matrix括号的外观

  • #2714: 修复了OpenGLVMobject.pointwise_become_partial()以改进描边渲染的问题

  • #2727: 略微提升了ArrowVectorField和贝塞尔曲线计算的性能

  • #2728: 添加了VectorField.fit_to_coordinate_system(),用于将矢量场拟合到给定坐标系

  • #2730: 添加了说明,方便用户查找默认CLI子命令的文档

  • #2746: 在Docker镜像中安装了ghostscript

  • #2841: 添加了split_quadratic_bezier()subdivide_quadratic_bezier()

  • #2842: CLI:将功能从manim new移至manim init,并为manim new添加了弃用警告

  • #2866: 重新组织测试文件以匹配库模块结构

修复的错误

测试系统相关更改

  • #2743: 将assert语句替换为np.testing中的断言函数

开发基础设施更改

  • #2700: CI:更新了Python版本

  • #2701: CI:新增了一个工作流,用于在发布和向主分支提交后发布Docker镜像

代码质量改进和类似重构

  • #2680: 将numpy的最低要求版本提高到1.19

  • #2687: 将SVGMobject及其他位置中的os.path迁移到pathlib

  • #2715: 更新了已弃用的pillow常量

  • #2735: 将pyjwt版本从2.3.0升级到2.4.0

  • #2748: 将pillow版本从9.1.0升级到9.1.1

  • #2751: 修复了flake C417并改进了一处注释

  • #2825: 将notebook版本从6.4.11升级到6.4.12

  • #2864: 更新了锁定文件

新版本发布

  • #2863: 准备新版本v0.16.0发布