v0.10.0

Date:

2021年9月1日

贡献者

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

  • 动画物理 +

  • 本杰明·哈克尔

  • 克里斯蒂安·克劳斯

  • 丹尼尔·阿德洛敦 +

  • 达里戈夫研究

  • Darylgolden

  • 埃里克·比德特 +

  • Harivinay

  • 扬-亨德里克·穆勒

  • Jephian Lin +

  • 乔伊·巴拉 +

  • 莱斯·巴霍迪

  • Lalourche +

  • 马克斯·斯托门

  • 纳文·M·K

  • 奥利弗

  • 帕尔塔·达斯 +

  • 拉吉·丹德卡 +

  • 罗翰·夏尔马 +

  • 瑞安·麦考利

  • 瓦茨拉夫·赫拉瓦奇 +

  • asjadaugust +

  • ccn

  • icedcoffeeee

  • sparshg

  • vinnniii15 +

  • 弗拉迪斯拉夫·多斯特 +

  • xia0long +

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

  • Aathish Sivasubrahmanian

  • 本杰明·哈克尔

  • Darylgolden

  • 德文·尼尔

  • 埃里克·比德特

  • 游戏地牢

  • Harivinay

  • Hugues Devimeux

  • 扬-亨德里克·穆勒

  • 杰森·维拉纽瓦

  • Jephian Lin

  • 乔伊·巴拉

  • KingWampy

  • 莱斯·巴霍迪

  • 纳文·M·K

  • 奥利弗

  • 拉加夫·戈尔

  • 拉吉·丹德卡

  • 瑞安·麦考利

  • ccn

  • icedcoffeeee

  • ralphieraccoon

  • sparshg

合并的拉取请求

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

重大变更

  • #1843: Dropped redundant OpenGL files and add metaclass support for Surface
    • OpenGL 类从 opengl_geometry.py, opengl_text_mobject.py, opengl_tex_mobject.py, opengl_svg_path.py, opengl_svg_mobject.py 和大部分的 opengl_three_dimensions.py 已被移除。

    • ParametricSurface 已更名为 Surface

已弃用的类和函数

新功能

  • #1929: Implementing a zoom parameter for ThreeDScene.move_camera()

    现在可以通过在construct方法中调用例如self.move_camera(zoom=2)来放大ThreeDScene

  • #1980: 添加了一个 dissipating_time 关键字参数到 TracedPath 以允许动画化消散路径

  • #1899: Allow switching the renderer to OpenGL at runtime

    之前,元类方法仅在类对象初始化时(即在导入时)更改继承链以在OpenGL和cairo mobjects之间切换。此PR还在config.renderer的值更改时触发继承链的更改。

  • #1828: 添加了配置选项 zero_pad 用于零填充 PNG 文件名

增强功能

  • #1882: 为 PMobject 及其子类添加了 OpenGL 支持

  • #1881: 添加了方法 Angle.get_lines()Angle.get_value()角度

  • #1952: 添加了保存最后一帧的选项用于OpenGL

  • #1922: 修复了IPython接口,当OpenGL渲染器引发错误时能够干净地退出

  • #1923: 修复了manim init子命令的CLI帮助文本,使其不再被截断

  • #1868: Added OpenGL support to IPython magic

    在使用%%manim魔法命令时,现在可以在jupyter笔记本中使用OpenGL渲染器。

  • #1841: 减少了Dot3D的默认分辨率

  • #1866: 允许传递关键字参数 corner_radiusSurroundingRectangle

  • #1847: 允许Cross在不需mobject的情况下创建

修复的bug

  • #1985: 使用 height 来确定 font_size 而不是 _font_size 属性

  • #1758: 修复了在使用OpenGL渲染器时忽略场景选择的问题

  • #1871: 修复了损坏的 VectorScene.vector_to_coords()

  • #1973: 修复了Table.get_entries()的索引以尊重行长度

  • #1950: 修复了将自定义箭头形状传递给 CurvedArrow 的问题

  • #1967: 修复了 Axes.coordinate_labels 引用整个轴而不仅仅是其标签的问题

  • #1951: 修复了 Axes.get_line_graph() 返回的图形在坐标轴下方渲染的问题

  • #1943: 添加了 buff 关键字参数到 BraceLabel

  • #1938: 修复了旋转对于角度为\(2\pi\)的倍数的情况

  • #1924: 使箭头提示正确旋转 INOUT

  • #1931: 修复了Mobject.arrange_in_grid()中的row_heights

  • #1893: 修复了在渲染包含单个场景的文件时未指定场景名称时出现的CLI错误

  • #1744: 修复了在NumberPlane中,当x_rangey_range为严格正数或严格负数时的错误

  • #1887: 修复了custom_configframes_comparison中不起作用的问题

  • #1879: 修复了Poetry确定已安装版本的方式

关于测试系统的更改

  • #1894: 修复了一个OpenGL测试

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

  • #1987: 添加了在Windows管道中使用OpenGL子进程的支持

  • #1964: 添加了 CITATION.cff 和一个方法来自动更新此引用以包含新版本

  • #1856: 修改了Dockerfile以支持通过docker buildx进行多平台构建

  • #1955: 部分支持使用Docker进行OpenGL渲染

  • #1896: 使RTD apt安装FFMPEG而不是安装Python绑定

  • #1864: 缩短并简化了PR模板

  • #1853: 更新Sphinx至4.1.2

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

  • #1960: 忽略更少的flake8错误

  • #1947: 设置 flake8 不忽略 Python 代码中未定义的名称

  • #1948: flake8: 设置最大行长度而不是忽略长行

  • #1956: Upgrade to modern Python syntax
  • #1898: Replaced self.data["attr"] and self.uniforms["attr"] with self.attr

    特别是,OpenGLVMobject.points 现在可以直接访问。

  • #1934: 通过实施LGTM的建议提高了代码质量

  • #1861: 更新了 dearpygui 版本到 0.8.x

新版本

  • #1989: 准备新版本 v0.10.0