该项目包含用于生成 3Blue1Brown 上的解释性数学视频的代码。
这几乎完全由使用 Manim 库生成的场景组成。另请参阅 ManimCommunity 上的社区维护版本。
较旧的项目可能具有依赖于旧版本 manim 的代码,因此可能无法在此处开箱即用。
请注意,虽然 Manim 库本身是开源软件并且在 MIT 许可证下,但该存储库的内容可在 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License 下使用。
我制作这个视频是为了更多地展示我如何使用 manim。请注意,我使用的是 3b1b/manim,而不是社区版,两者之间的某些功能可能有所不同。除了安装 manim 本身之外,复制工作流程还涉及到我使用的文本编辑器 Sublime 的一些自定义插件。
如果您使用其他文本编辑器,可以模仿相同的功能。关键是要利用两个事实。
运行manimgl (file name) (scene name) -se (line_number)
将使您在文件的该行进入交互模式,就像调试器一样,带有可用于与场景交互的 iPython 终端。
在该交互模式下,如果您在终端输入“checkpoint_paste()”,它将运行复制到剪贴板的任何代码。此外,如果复制的代码以注释开头,则第一次看到该注释时,它将保存当时场景的状态,并且对于以相同注释开头的代码的所有未来调用,它将首先恢复到该状态运行代码之前的场景。
对于我自己的工作流程,我设置了一些键盘快捷键来启动每个命令。对于那些想亲自尝试的人,以下是相关内容。
安装 Terminus(通过包控制)。这是一个在 sublime 中运行的终端,它允许我们编写一些插件来获取 sublime 中的状态,例如光标在哪里、突出显示的内容等,并使用它来运行所需的命令行指令。
获取此存储库的“sublime_custom_commands”子目录中的文件,并将它们复制到 Sublime 应用程序的 Packages/User/ 目录中。这应该是一个路径类似于 /wherever/your/sublime/lives/Packages/User/ 的目录
添加一些键绑定来引用这些命令。这是我的 key_bindings 文件中的内容,您可以在菜单 Sublime Text -> Settings -> Keybindings 下找到您自己的文件
{ "keys": ["shift+super+r"], "command": "manim_run_scene" },
{ "keys": ["super+r"], "command": "manim_checkpoint_paste" },
{ "keys": ["super+alt+r"], "command": "manim_recorded_checkpoint_paste" },
{ "keys": ["super+ctrl+r"], "command": "manim_skipped_checkpoint_paste" },
{ "keys": ["super+e"], "command": "manim_exit" },
{ "keys": ["super+option+/"], "command": "comment_fold"},
例如,我将“command + shift + R”绑定到自定义“manim_run_scene”命令。如果光标位于场景的一行内,这将使您进入场景中该点的交互模式。如果光标位于定义场景的行上,它将将该完整场景渲染到文件所需的命令复制到剪贴板。
我将“command + R”绑定到“manim_checkpoint_paste”命令,该命令将复制突出显示的任何代码,并在交互式终端中运行“checkpoint_paste()”。
当然,您可以将它们设置为您喜欢的任何键盘快捷键。
版权所有 © 2024 3Blue1Brown