v0.5.0¶
- Date:
2021年4月2日
贡献者¶
共有35人参与了此版本的贡献。名字旁边带有“+”的人是首次提交补丁的作者。
阿贝尔·埃布克 +
阿比吉特·穆提亚拉
安东·巴尔迈尔 +
Aron
本杰明·哈克尔
博格丹·斯坦塞斯库 +
Darylgolden
德文·尼尔
游戏地牢 +
Hugues Devimeux
杰森·维拉纽瓦
卡皮尔·萨赫德瓦
KingWampy
莱昂内尔·雷 +
马克·米勒
穆罕默德·阿尔-费特亚尼 +
纳文·M·K
尼可拉斯·德瓦利 +
奥利弗 +
Roopesh +
塞布·皮尔斯 +
aebkea +
friedkeenan
hydrobeam +
kolibril13
sparshg
tfglynn +
此版本中包含的补丁已由以下贡献者审核。
阿贝尔·埃布克
阿比吉特·穆提亚拉
本杰明·哈克尔
博格丹·斯坦切斯库
德文·尼尔
Hugues Devimeux
杰森·维拉纽瓦
卡皮尔·萨赫德瓦
KingWampy
利奥·托雷斯
莱昂内尔·雷
马克·米勒
穆罕默德·阿尔-费特亚尼
纳文·M·K
奥利弗
Ricky Chon
vector67
合并的拉取请求¶
本次发布共合并了64个拉取请求。
亮点¶
- #1075: Add OpenGL Renderer
添加了一个OpenGLRenderer、OpenGLCamera、支持OpenGL的Mobjects,以及一个
--use_opengl_renderer标志。当传递此标志时,您可以传递-p标志以预览动画,传递-w标志以生成视频,以及传递-q标志以指定渲染质量。如果您不传递-p或-w标志,则不会发生任何事情。使用OpenGL渲染器渲染的场景必须仅使用支持OpenGL的Mobjects。
已弃用的类和函数¶
新功能¶
- #1037: Added new fade and transform animations (
TransformMatchingShapes,TransformMatchingTex,FadeTransform) from 3b1b/manim 新增了新的淡出动画:
FadeOutToPoint新增了FadeTransform和FadeTransformPieces用于通过淡出变换mobjects和submobjects 新增了TransformMatchingShapes和TransformMatchingTex用于变换具有匹配部分的mobjects和tex
- #1037: Added new fade and transform animations (
#1074: 在配置中添加了jupyter media_width选项
- #1085: Added
角度andRightAnglefor intersecting lines Angle和RightAngle都接受两条线作为输入。如果它们相交或共享一个共同的顶点,则在它们之间绘制一个角度。用户可以自定义角度的外观,也可以使用虚线直角。
- #1085: Added
增强功能¶
#1144: 提高了GIF的质量
- #1157: Refresh triangulation on call to
apply_points_function() 旋转调用了apply_points_function,之前它没有被OpenGLMobject子类化——现在它被子类化了。然后,顶点法线也可以更新。
此外,旋转后old_points矩阵会发生变化,使得旧点/新点测试变得无关紧要。这通过.copy调用来解决。
- #1157: Refresh triangulation on call to
#1151: 向
OpenGLSurface添加了参数函数支持#1139: 代码中的 config[“preview”] 支持
- #1123: Added caching, skipping, and user-specified background colors to the OpenGL renderer
OpenGL 播放逻辑已改进,支持使用 -n 参数进行缓存和跳过(现在与 Cairo 播放逻辑类似)。OpenGLSurface 中的一个随机错误已修复,现在可以通过 background_color 参数更改 OpenGL 背景颜色。
- #1118: Allow passing animation arguments with .animate syntax
用户现在可以像obj.animate(run_time=2).method(arg)这样操作,如果他们想为单个.animate调用指定动画参数,仍然可以不指定任何参数,如obj.animate.method(arg)。
传递动画参数仅在访问.animate后直接允许,如果在其他地方传递,则会引发ValueError。
- #718: Rotating the numbers in y axis
在Axes中,y轴将旋转90度,但数字也随之旋转,这是不应该的。修复了这个问题。
- #1070: Raise FileNotFoundError when unable to locate the .cfg file specified via
--config_file 引发错误将停止脚本执行,并让用户知道–config_file位置存在问题,而不是回退到默认配置。
- #1070: Raise FileNotFoundError when unable to locate the .cfg file specified via
修复的bug¶
#1224: 修复了
ShowIncreasingSubsets,ShowSubmobjectsOneByOne, 和AddTextLetterByLetter#1201: 防止在空场景中使用
embed()时崩溃#1192: 修复了当动画被缓存时,manim无法合并部分电影文件的问题。
- #1193: Fixed using
Animationwithout a childMobjectinAnimationGroup AnimationGroup 现在可以接受没有子 Mobject 的 Animation 对象,例如 Wait。
- #1193: Fixed using
#1170: 修复了SVG解析中的一些小错误
#1159: 添加了对同一SVG元素中多个变换的支持
- #1156: Fixed
DrawBorderThenFillto support OpenGL and improved type hints for some functions 修复了
DrawBorderThenFill中的一个错误,该错误阻止了Write动画与OpenGLVMobjects一起工作,并稍微改进了一些动画函数的类型提示,以包括OpenGLVMobject。
- #1156: Fixed
- #1134: Fixed the -a flag.
-a/--write-all标志存在问题。使用时,它会导致 Manim 在开始渲染第二个场景后立即崩溃。
- #1115: Fixed bugs in
OpenGLMobjectand addedApplyMethodsupport 修复了未定义的变量并将
Mobject转换为OpenGLMobject。此外,修复了ApplyMethod中的断言语句。
- #1115: Fixed bugs in
- #1092: Refactored coordinate_systems.py, fixed bugs, added
NumberPlanetest rotate()的默认行为是围绕Mobject的中心旋转。NumberLine仅在|x_min|==|x_max|时关于数字0的点对称。理想情况下,旋转应与线上的数字0点重合。添加了一个回归测试,并额外修复了在#718中引入的一些错误。
- #1092: Refactored coordinate_systems.py, fixed bugs, added
- #1078: Removed stray print statements from __main__.py
使用rich的打印回溯功能,并修复了在调用manim –version时版本信息打印两次的问题。
关于测试系统的更改¶
我们的开发基础设施的变化¶
#1213: 更新了TinyTex依赖项
#1187: 将CodeCov添加到Github工作流中
#1166: CI: 使用 poetry 的缓存目录而不是 pip
- #1071: Enable pytest-cov based code coverage
将pytest-cov作为Python模块包含在开发者依赖项中
在更新poetry以包含pytest-cov时,manimpango从版本0.2.3升级到0.2.4,并且需要在Ubuntu中安装libpango1.0-dev。
添加到CI工作流(ci.yml)以创建并上传测试覆盖率。
#1073: 从 PULL_REQUEST_TEMPLATE.md 中移除了“一行摘要”
代码质量改进和类似的重构¶
#1164: 修复了cairo_renderer.py中的单一PEP8风格问题
#1140: Flake8 兼容性 & 代码清理
- #1019: Refactored
play() 移除了
play()的_**三个**_装饰器,特别是:缓存逻辑和文件写入逻辑现在包含在play()中(以前不可能,因为scene.wait和scene.play是两个不同的东西)。向Wait添加了is_static_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中完成,尽管让渲染器稍后处理它更有意义。
感谢模拟测试,添加了一堆很酷的测试,同时也感谢新的语法 scene.render
- #1019: Refactored