我是使用 manim 的新手,我尝试实现一个简单的动画来实现分数的连续分数展开。到目前为止我的代码如下:
from manim import *
class Eq(Scene):
def construct(self):
f1=MathTex(
r"{75 \over ",
r"33",
"}"
)
f2=MathTex(
r"{66+9 \over ",
"33",
"}"
)
f3=MathTex(
r"{2+}",r"{9 \over ",
"33",
"}"
)
f4=MathTex(
r"{2+}",r"{1 \over ",
r"{33 \over",
"9",
"}","}"
)
self.add(f1)
self.wait(2)
self.play(ReplacementTransform(f1[0],f2[0]))
self.wait(2)
self.play(ReplacementTransform(f1,f3))
self.wait(2)
self.play(ReplacementTransform(f3,f4))
self.wait(2)
可能没有那么高效,但这不是我的问题。当我在分母中移动分数时,
\over
会产生一个比原始分数小的文本分数,使其看起来很尴尬。有可能避免这种情况吗?
我发现视频中连分数展开保持相同的大小,所以它必须是可能的。不幸的是,我无法找到解决这个特定问题的指南。如有帮助,我们将不胜感激。
如您所见,分母中的分数更小。我希望它的大小与原始分数相同。
总的来说,这更像是一个“LaTeX”问题,而不是一个“manim/python”问题。 Manim 只是将 LaTeX 方程渲染为 *.svg 文件并将该文件添加到场景中。所以真正的问题是,如何按照您想要的方式渲染 LaTeX 方程。 在这里您可以找到可能的解决方案。
将第一个应用到您的示例中可能会导致以下结果:
f4=MathTex(
r"{2+}",r"\begin{array}{@{\,}c@{\,}} 1\\ \hline 33\\ \hline 9\end{array}"
)
...
看起来像这样: