怎么照着一张截图,让 AI 复原一段复杂的 Manim 动画?

2026 年 9 月 14 日 · 极坐标⋅XYZ

怎么照着一张截图,让 AI 复原一段复杂的 Manim 动画?

在极坐标⋅XYZ 的工作区里新建一个 .py 文件,把截图加进 AI 面板的输入框,写一句「根据图片信息,复原动画」,发送就行。面板上写的是「AI 助手」,我们自己叫它 Manim Coding Agent:它先看懂图里画的是什么,再写代码、在浏览器里试跑、检查画面,最后出一段能播放、能导出的动画。

这篇用的截图是庞加莱圆盘里的双曲镶嵌,圆盘里铺满七边形,越靠边越密,顶上还有一行 Möbius 变换公式。我们只写了两行字,发了一轮,调用 2 次模型,扣 51 积分。图都截自这次操作的录屏。

工作区里做完的双曲镶嵌动画:左边文件树里的 moby.py,中间是代码和预览区(导出栏、帧 131/131),右边 AI 面板里的汇报、三条建议和「调用 2 次 −51 积分 · 错峰 5 折」

第一步:打开工作区,新建文件

工作区,第一次会看到「正在唤醒数学引擎」,页面上写着首次加载约 8 到 15 秒,之后走缓存。电脑上不用装 Python、LaTeX 或 ffmpeg。

新建文件,名字填 moby,不写后缀会自动补 .py。文件先空着。

第二步:准备参考截图

我们用的是一张竖版截图,1031×1568,112KB。上半部分是两行公式:

  • f_a(z) = e^{iθ}(z − a)/(1 − āz)
  • |a| < 1,{p,q} = {7,3}

下半部分是圆盘里的七边形镶嵌。截图里只有一帧画面,动起来是什么样,图上看不出来,这部分留给它自己理解公式。

发给 AI 的参考截图(1031×1568,112KB):顶部 Möbius 变换公式 f_a(z)=e^{iθ}(z−a)/(1−āz) 和 |a|<1、{p,q}={7,3},下面是圆盘里越靠边越密的七边形镶嵌

第三步:写提示词,选思考深度

输入框里就两行,原样贴出来:

  • @moby.py
  • 根据图片信息,复原动画

第一行用 @ 指定文件,代码就写进 moby.py。第二行告诉它照图做。截图加进来以后,输入框上方会出现一个带尺寸的缩略图标签,旁边是 moby.py 的标签,两个都在就可以发了。

这是什么图形、点 a 怎么动、画幅多大,提示词里一个字都没提。

思考深度选的是「低」。四档的说明分别是:关,默认档,靠真实渲染反馈;低,略慢,写复杂场景时更稳;高,明显更慢;最深,最慢也最贵。镶嵌要一层层往外生成,算复杂场景,所以没用默认档。

AI 输入框里的两行提示词「@moby.py」「根据图片信息,复原动画」,上方附着参考截图和 moby.py,思考深度为「低」

第四步:发送,看它一步步做

发出去以后,它先思考了 1.27 万字,给出的第一句判断是:这个参考图是双曲镶嵌 {7,3} 在庞加莱圆盘中的动画,顶部是 Möbius 变换公式,圆盘内是七边形镶嵌。

接着「过程」一栏走了 5 步:

  1. 写入 moby.py,193 行
  2. 在浏览器里试跑 MobiusTiling,131 帧,8.7 秒
  3. 检查画面,5 帧
  4. 汇报
  5. 渲染成片

检查画面那一步,是系统从试跑结果里抽帧给它看。它看完写的是:公式显示完整,圆盘镶嵌层次清晰,红色动点 a 和中心 0 的位置正确,没有出框或缺字,变形那一段正常。

这一轮一共调用模型 2 次,扣了 51 积分,当时是错峰时段,按 5 折算的。这一轮存成了检查点 v1。

Manim Coding Agent 的过程:写入 moby.py 193 行、浏览器里试跑 MobiusTiling 131 帧 8.7 秒、检查画面 5 帧、汇报已打勾,渲染成片还在进行;下面是它的检查说明、三条建议和「调用 2 次 −51 积分 · 错峰 5 折」

第五步:核对它交回来的东西

它的汇报是:在 moby.py 中复原了参考图的动画,庞加莱圆盘内的 {7,3} 双曲正七边形镶嵌,顶部显示 Möbius 变换公式,随后镶嵌随圆盘内动点 a 的运动作 Möbius 变换;镶嵌用 BFS 反射实时生成测地线弧,近边界处自然加密;已试跑通过,画面无重叠、出框或缺字。

我们逐条对了一下。

公式和参考图一致,两行都在,分式也排出来了。

{7,3} 的意思是每块是正七边形,每个顶点三块相接。正七边形的内角是 128.57°,三块加起来 385.7°,比 360° 多,平面上拼不拢,所以只能在双曲几何里铺,庞加莱圆盘就是把整个双曲平面画进一个圆里。成片里数一下中间那块的边,是七条,顶点处是三块相接,对得上。

动画的走向:红点 a 从圆心附近出发,往上、往左、往左下、往右下绕了一圈,最后回到圆心。镶嵌跟着挤压、转动,但始终在圆里。这个也对得上:|a| < 1 时,f_a(z) 把圆盘映回圆盘,边界圆映回边界圆,a 被送到 0。我们用 python 随机取了 2000 组 a 和 θ,圆盘内的点变换后模长最大是 0.99998,边界上的点变换后模长都是 1。

有一处它说得不对。汇报里写「画面无重叠」,实际上圆盘上沿压住了第二行公式里的 {p,q},圆盘画出来以后就一直压着,放大看很明显。检查画面那 5 帧它没挑出来。要改的话接着说一句「圆盘往下挪一点,别压住第二行公式」就行,改坏了可以退回检查点 v1。

预览区放大后的第 99 帧:点 a 移到左下方,镶嵌跟着变形;圆盘上沿压住了第二行公式里的 {p,q}

还有画幅。参考图是竖的,成片是横的 854×480。它自己在建议里提了这件事,三条建议原文是:把参数 a 的运动路径改成更复杂的轨迹;把镶嵌 {7,3} 换成 {5,4} 或 {8,3};改成竖屏画幅以更贴近参考图比例。想要哪条点一下,它接着改。

它写的代码开头是一组可调参数,P, Q = 7, 3 是 Schläfli 符号,EDGE_CUT = 0.988 控制离圆心多远的格子还画,MAX_POLY = 2200 是格子数量上限,注释都是中文,自己改数字也看得懂。

第六步:导出

预览区上面一排就是导出:「无水印」开关、格式选 MP4、「下载」、「存到 output/」。不用 AI 的话,写代码、渲染、导出都不扣积分。

花了多少,适合谁用

这次从发送到出片一轮,调用 2 次,51 积分,错峰 5 折。北京时间工作日 9 到 12 点、14 到 18 点是高峰,同样的操作按原价扣。用 AI 要登录,新账号送 1,000 积分。

适合手里有一张好看的截图、却不知道从哪下手写代码的人。双曲镶嵌这种东西,自己写要先弄懂反射怎么生成格子、测地线弧怎么画,照图复原省掉的主要是这一段。它交回来的东西还是要自己看一遍,像这次的公式重叠,汇报里就没说。

想看懂这 193 行代码,教程里每一课旁边都是能直接运行的代码。拿题目截图、泰勒展开参考图让它做动画的例子,在《AI 能直接生成 Manim 数学动画吗?》里;提示词写得很细、一轮就对的例子,见《怎么用 AI 把一道最值题做成 Manim 动画?》

常见追问(FAQ)

Q:截图里的公式它能读出来吗? A:这次能。参考图里的 f_a(z)、|a| < 1 和 {p,q} = {7,3},成片里都用 LaTeX 重新排了,和原图一致。

Q:不懂双曲几何能用吗? A:能。提示词里我们一个术语都没写,是它从图里认出 {7,3} 双曲镶嵌的。想弄懂原理再去看代码和注释。

Q:参考图是竖的,成片为什么是横的? A:没在提示词里说画幅时,它用的是项目当前的 854×480。它自己的第三条建议就是改成竖屏,点一下就行。

Q:能换成别的镶嵌吗? A:它给的第二条建议就是换成 {5,4} 或 {8,3}。代码开头也有 P, Q = 7, 3 这一行。

Q:生成的代码能拿到本地用吗? A:能。写的是标准 Manim Community 代码,复制出去本地装好 Manim 就能跑。


来源:极坐标⋅XYZ(jizuobiao.xyz),2026 年 9 月 14 日更新。文中的步骤、行数、帧数和积分数,均取自当次操作的录屏。