Manim 中的多个 linear/non 线性变换

Multiple linear/non linear transformations in Manim

我正在 manim 中编写脚本来执行一些转换。我想将多个 linear/non 线性变换按顺序应用于图形。我试过了但失败了。这是我的代码

from manim import *
import numpy as np

class transformation(LinearTransformationScene):
    def construct(self):
        # Linear transformation
        self.apply_matrix([[1, 0], [1, 1]])              # <============

        # Non-linear transformation
        self.apply_nonlinear_transformation(self.func)   # <============

        self.wait()

    def func(self, dot):
        return np.array((max(dot[0], 0), max(dot[1], 0), dot[2]))

还有一个我无法理解的奇怪行为是,如果我 运行 只有一个突出显示的行。然后那个转换工作正常。但是如果我同时 运行 两行然后它通过这个错误:

ValueError: operands could not be broadcast together with shapes (4,3) (200,3)

那么这个错误的原因是什么?以及如何 运行 两种转换?

在转换之间添加 self.wait()

from manim import *
import numpy as np

class transformation(LinearTransformationScene):
    def construct(self):
        # Linear transformation
        self.apply_matrix([[1, 0], [1, 1]])              # <============

         self.wait(0) #just add this

        # Non-linear transformation
        self.apply_nonlinear_transformation(self.func)   # <============

        self.wait()

    def func(self, dot):
        return np.array((max(dot[0], 0), max(dot[1], 0), dot[2]))

编辑:将 self.wait() 更改为 self.wait(0)