如何应用多重线性变换
How do I Apply Multiple Linear Transformations
我正在尝试多次使用 LinearTransformationScene
的 apply_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
。
我希望创建一个动画:
- 应用矩阵
P
- 短暂停顿
- 应用另一个矩阵
D
- 再次短暂停顿
- 最后,应用 P 的倒数,
P_inv
。
我该如何做到这一点?发布了类似的问题,但没有人发布有关此特定错误的信息。
不幸的是,这些专门的 Scene
类 维护得不是很好,这是一个已知问题。不过有一个简单的解决方法:在调用 self.apply_matrix
之后,添加
self.moving_mobjects = []
apply_matrix
的下一个应用程序将再次按预期工作。
我正在尝试多次使用 LinearTransformationScene
的 apply_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
。
我希望创建一个动画:
- 应用矩阵
P
- 短暂停顿
- 应用另一个矩阵
D
- 再次短暂停顿
- 最后,应用 P 的倒数,
P_inv
。
我该如何做到这一点?发布了类似的问题,但没有人发布有关此特定错误的信息。
不幸的是,这些专门的 Scene
类 维护得不是很好,这是一个已知问题。不过有一个简单的解决方法:在调用 self.apply_matrix
之后,添加
self.moving_mobjects = []
apply_matrix
的下一个应用程序将再次按预期工作。