v0.5.0¶
- 日期:
2021年4月2日
贡献者¶
共有35人对本次发布做出了贡献。名字旁带有“+”的人是首次贡献补丁。
Abel Aebker +
Abhijith Muthyala
AntonBallmaier +
Aron
Benjamin Hackl
Bogdan Stăncescu +
Darylgolden
Devin Neal
GameDungeon +
Hugues Devimeux
Jason Villanueva
Kapil Sachdeva
KingWampy
Lionel Ray +
Mark Miller
Mohammad Al-Fetyani +
Naveen M K
Niklas Dewally +
Oliver +
Roopesh +
Seb Pearce +
aebkea +
friedkeenan
hydrobeam +
kolibril13
sparshg
tfglynn +
此版本中包含的补丁已由以下贡献者审阅。
Abel Aebker
Abhijith Muthyala
Benjamin Hackl
Bogdan Stăncescu
Devin Neal
Hugues Devimeux
Jason Villanueva
Kapil Sachdeva
KingWampy
Leo Torres
Lionel Ray
Mark Miller
Mohammad Al-Fetyani
Naveen M K
Oliver
Ricky Chon
vector67
合并的拉取请求¶
本次发布共合并了64个拉取请求。
亮点¶
- #1075: 添加OpenGL渲染器
添加了一个OpenGLRenderer、OpenGLCamera、支持OpenGL的Mobject,以及一个
--use_opengl_renderer
标志。当传递此标志时,您可以传递-p
标志来预览动画,-w
标志来生成视频,以及-q
标志来指定渲染质量。如果您不传递-p
或-w
标志,则不会发生任何事情。使用OpenGL渲染器渲染的场景必须只使用支持OpenGL的Mobject。
已废弃的类和函数¶
新功能¶
- #1037: 从3b1b/manim添加了新的淡入淡出和变换动画(
TransformMatchingShapes
、TransformMatchingTex
、FadeTransform
) 添加了新的淡入淡出动画:
FadeOutToPoint
。添加了FadeTransform
和FadeTransformPieces
,用于对mobjects和submobjects进行淡入淡出变换。添加了TransformMatchingShapes
和TransformMatchingTex
,用于对具有匹配部分的mobjects和tex进行变换。
- #1037: 从3b1b/manim添加了新的淡入淡出和变换动画(
#1074: 将jupyter media_width选项添加到配置中
- #1085: 为相交线添加了
Angle
和RightAngle
Angle
和RightAngle
都接受两条线作为输入。如果它们相交或共享一个公共顶点,则会在它们之间绘制一个角度。用户可以自定义角度的外观,也可以使用虚线直角。
- #1085: 为相交线添加了
改进¶
#1144: 提高了GIF的质量
- #1157: 在调用
apply_points_function()
时刷新三角剖分 Rotate调用了apply_points_function,该函数以前未被OpenGLMobject子类化——现在已经子类化了。然后,顶点法线也可以更新。
此外,旧点矩阵在旋转后会改变,使得旧点/新点测试变得无关紧要。这通过.copy调用来解决。
- #1157: 在调用
#1151: 为
OpenGLSurface
添加了参数函数支持#1139: 代码内config[“preview”]支持
- #1123: 为OpenGL渲染器添加了缓存、跳过和用户指定的背景颜色
OpenGL播放逻辑已得到改进,支持使用-n参数进行缓存和跳过(现在类似于Cairo播放逻辑)。修复了OpenGLSurface中的一个随机错误,并且现在可以通过background_color参数更改OpenGL背景颜色。
- #1118: 允许使用.animate语法传递动画参数
用户现在可以执行诸如obj.animate(run_time=2).method(arg)的操作,如果他们想为单个.animate调用指定动画参数,并且仍然可以不指定任何参数,例如obj.animate.method(arg)。
动画参数只允许在访问.animate后直接传递,如果在其他地方传递,则会引发ValueError。
- #718: 旋转y轴上的数字
在Axes中,y轴会旋转90度,但数字也会旋转,而它们不应该旋转。解决了这个问题。
- #1070: 无法找到通过
--config_file
指定的.cfg文件时,引发FileNotFoundError 引发错误将停止脚本执行,并让用户知道–config_file位置存在问题,而不是恢复到默认配置。
- #1070: 无法找到通过
修复的错误¶
#1224: 修复了
ShowIncreasingSubsets
、ShowSubmobjectsOneByOne
和AddTextLetterByLetter
#1201: 防止空场景在
embed()
上崩溃#1192: 修复了动画缓存时Manim无法合并部分电影文件的问题。
- #1193: 修复了在
AnimationGroup
中使用不带子Mobject
的Animation
的问题 AnimationGroup现在可以接受不带子Mobject的Animation对象,例如Wait。
- #1193: 修复了在
#1170: 修复了次要的SVG解析错误
#1159: 添加了对同一SVG元素中多个变换的支持
- #1156: 修复了
DrawBorderThenFill
以支持OpenGL并改进了某些函数的类型提示 修复了
DrawBorderThenFill
中的一个错误,该错误导致Write
动画无法与OpenGLVMobjects
一起使用,并略微改进了某些动画函数的类型提示,以包括OpenGLVMobject
。
- #1156: 修复了
- #1134: 修复了-a标志。
-a
/--write-all
标志已损坏。使用时,它会导致Manim在开始渲染第二个场景后立即崩溃。
- #1115: 修复了
OpenGLMobject
中的错误并添加了ApplyMethod
支持 修复了未定义的变量并将
Mobject
转换为OpenGLMobject
。此外,修复了ApplyMethod
中的assert语句。
- #1115: 修复了
- #1092: 重构了coordinate_systems.py,修复了错误,添加了
NumberPlane
测试 rotate()
的默认行为是绕着Mobject
的中心旋转。NumberLine
只有在|x_min|
==|x_max|
时才关于数字0处的点对称。理想情况下,旋转应该与线上数字0处的点重合。添加了回归测试,并额外修复了#718中引入的一些错误。
- #1092: 重构了coordinate_systems.py,修复了错误,添加了
- #1078: 删除了__main__.py中多余的打印语句
现在使用rich的打印回溯,并修复了调用manim –version时版本打印两次的问题。
测试系统相关更改¶
开发基础设施更改¶
代码质量改进和类似重构¶
#1164: 修复了cairo_renderer.py中的单个PEP8样式
#1140: Flake8兼容性与代码清理
- #1019: 重构了
play()
删除了
play()
的_**三个**_装饰器,特别是:缓存逻辑和文件写入器逻辑现在包含在play()
中(以前不可能,因为scene.wait和scene.play是两个不同的东西)。为Wait添加了is_static_wait属性。(<=>如果wait是冻结帧)。
将scene.add_static_frame重命名并移动到renderer.freeze_current_frame。
现在,当不带动画调用play时,它会引发ValueError而不是仅仅警告。
通过修改renderer.update_skipping_status修复了#874
renderer使用scene.begin_animations开始动画(scene.compile_animation_data以前做过这个)
运行时间和时间进程的生成现在在scene.play_internal中完成,尽管renderer稍后处理它可能更有意义。
由于mocks和新语法scene.render,添加了一堆很酷的测试
- #1019: 重构了