Manim魔法

限定名称: manim.utils.ipython\_magic.ManimMagic

class ManimMagic(**kwargs)[source]

基础类:Magics

根据给定的配置创建一个可配置的对象。

Parameters:
  • config (Config) – 如果为空,则使用默认值。如果 config 是一个 Config 实例,它将用于配置该 实例。

  • parent (Configurable实例, 可选) – 此对象的父Configurable实例。

  • shell (InteractiveShell)

注释

Configurable的子类必须在做任何其他事情之前调用__init__()方法,并使用super()

class MyConfigurable(Configurable):
    def __init__(self, config=None):
        super(MyConfigurable, self).__init__(config=config)
        # Then any other code you need to finish initialization.

这确保了实例将被正确配置。

方法

add_additional_args

manim

渲染包含在IPython单元格中的Manim场景。

属性

config

一个特质,其值必须是特定类的实例。

cross_validation_lock

一个上下文管理器,用于在将我们的交叉验证锁设置为True的情况下运行一个代码块。

magics

options_table

parent

一个特质,其值必须是特定类的实例。

registered

shell

manim(line, cell=None, local_ns=None)[来源]

渲染包含在IPython单元格中的Manim场景。 可以作为行或单元格魔法使用。

提示

此行的单元格魔法在JupyterLab环境中使用时效果最佳:虽然所有功能也适用于经典的Jupyter笔记本,但如果场景名称保持不变,有时在重复执行同一单元格时视频可能不会更新。

使用JupyterLab时不会出现此问题。

请参考https://jupyter.org/获取更多关于JupyterLab和Jupyter笔记本的信息。

在线模式下的使用:

%manim [CLI options] MyAwesomeScene

在单元格模式中的使用:

%%manim [CLI options] MyAwesomeScene

class MyAweseomeScene(Scene):
    def construct(self):
        ...

运行 %manim --help%manim render --help 以获取可能的命令行界面选项。

注意

可以在笔记本中显示的渲染视频的最大宽度可以通过media_width配置选项进行配置。默认设置为25vw,即当前视口宽度的25%。为了使输出尽可能大,可以设置config.media_width = "100%"

media_embed 选项将在笔记本中嵌入图像/视频输出。这通常是不希望的,因为它会使笔记本变得非常大,但在某些平台上是必需的(特别是Google的CoLab,除非通过config.embed = False禁用,否则会自动启用),并且在笔记本(或转换后的HTML文件)相对于视频位置移动的情况下也是必需的。使用案例包括使用Sphinx和JupyterBook构建文档。另请参阅manim directive for Sphinx

示例

首先确保在单元格中输入import manim,或者甚至from manim import *并执行它。然后,一个典型的用于Manim的Jupyter笔记本单元格可能如下所示:

%%manim -v WARNING --disable_caching -qm BannerExample

config.media_width = "75%"
config.media_embed = True

class BannerExample(Scene):
    def construct(self):
        self.camera.background_color = "#ece6e2"
        banner_large = ManimBanner(dark_theme=False).scale(0.7)
        self.play(banner_large.create())
        self.play(banner_large.expand())

评估此单元格将渲染并显示在单元格主体中定义的BannerExample场景。

注意

如果你想隐藏包含输出进度条的红色框,应该将progress_bar配置选项设置为None。这也可以通过传递--progress_bar None作为CLI标志来完成。

Parameters:
  • line (str)

  • 单元格 (字符串)

  • local_ns (dict[str, Any])

Return type: