如何应用多重线性变换

How do I Apply Multiple Linear Transformations

我正在尝试多次使用 LinearTransformationSceneapply_matrix

from manim import *

class LT(LinearTransformationScene):
    def __init__(self):
        super().__init__(
            self,
            show_coordinates=True,
            leave_ghost_vectors=True,
        )

    def construct(self):
        P     = [[1, 1], [1, -1]];
        D     = [[2, 0], [0, 0.5]];
        P_inv = [[0.5, 0.5], [0.5, 0.5]];

        self.apply_matrix(P);
        self.wait();

        self.apply_matrix(D);
        self.wait();

        self.apply_matrix(P_inv);
        self.wait();

但是我得到这个错误:submobjects must be of type VMobject

我希望创建一个动画:

  1. 应用矩阵P
  2. 短暂停顿
  3. 应用另一个矩阵D
  4. 再次短暂停顿
  5. 最后,应用 P 的倒数,P_inv

我该如何做到这一点?发布了类似的问题,但没有人发布有关此特定错误的信息。

不幸的是,这些专门的 Scene 类 维护得不是很好,这是一个已知问题。不过有一个简单的解决方法:在调用 self.apply_matrix 之后,添加

self.moving_mobjects = []

apply_matrix 的下一个应用程序将再次按预期工作。