线性变换场景¶
全限定名称:manim.scene.vector\_space\_scene.LinearTransformationScene
- class LinearTransformationScene(include_background_plane=True, include_foreground_plane=True, background_plane_kwargs=None, foreground_plane_kwargs=None, show_coordinates=False, show_basis_vectors=True, basis_vector_stroke_width=6, i_hat_color=ManimColor('#83C167'), j_hat_color=ManimColor('#FC6255'), leave_ghost_vectors=False, **kwargs)[source]¶
基类:
VectorScene
此场景包含特殊方法,使其特别适合演示线性变换。
- 参数:
**include_background_plane** (*bool*) – 是否在场景中包含背景平面。
**include_foreground_plane** (*bool*) – 是否在场景中包含前景平面。
**background_plane_kwargs** (*dict* | *None*) – 传递给
NumberPlane
以调整背景平面的参数。**foreground_plane_kwargs** (*dict* | *None*) – 传递给
NumberPlane
以调整前景平面的参数。**show_coordinates** (*bool*) – 是否包含背景平面的坐标。
**show_basis_vectors** (*bool*) – 是否显示基向量 x 轴 ->
i_hat
和 y 轴 ->j_hat
。**basis_vector_stroke_width** (*float*) – 基向量的
stroke_width
。**i_hat_color** (ParsableManimColor) –
i_hat
向量的颜色。**j_hat_color** (ParsableManimColor) –
j_hat
向量的颜色。**leave_ghost_vectors** (*bool*) – 指示变换后基向量的先前位置。
示例
示例:LinearTransformationSceneExample ¶
from manim import * class LinearTransformationSceneExample(LinearTransformationScene): def __init__(self, **kwargs): LinearTransformationScene.__init__( self, show_coordinates=True, leave_ghost_vectors=True, **kwargs ) def construct(self): matrix = [[1, 1], [0, 1]] self.apply_matrix(matrix) self.wait()
class LinearTransformationSceneExample(LinearTransformationScene): def __init__(self, **kwargs): LinearTransformationScene.__init__( self, show_coordinates=True, leave_ghost_vectors=True, **kwargs ) def construct(self): matrix = [[1, 1], [0, 1]] self.apply_matrix(matrix) self.wait()
方法
将 mobject 添加到特殊列表 self.background_mobjects。
将 mobject 添加到特殊列表 self.foreground_mobjects。
将 mobject 添加到特殊列表 self.moving_mobject,并为 mobject 添加一个名为 mobject.target 的属性,该属性用于跟踪 mobject 将移动到何处或将变成什么等。
将 mobject 添加到一个单独的可跟踪列表,如果这些 mobject 具有额外的重要性。
添加标题,先进行缩放,然后添加背景矩形,将其移动到顶部并添加到 foreground_mobjects,同时将其作为 self 的局部变量。
用于创建和动画化向量可变换标签添加的方法。
将 mobject 添加到特殊列表 self.transformable_mobjects。
通过 self.get_unit_square 向场景添加一个单位正方形。
向场景添加一个向量,并将其放入特殊列表 self.moving_vectors 中。
将给定函数应用于 self.transformable_mobjects 中的每个 mobject,并播放显示此操作的动画。
此方法将传递矩阵的逆所表示的线性变换应用于数值平面及其上的每个向量/类似 mobject。
将给定转置矩阵所表示的变换的逆应用于数值平面及其上的每个向量/类似 mobject。
将给定矩阵所表示的变换应用于数值平面及其上的每个向量/类似 mobject。
将给定函数所表示的非线性变换应用于数值平面及其上的每个向量/类似 mobject。
将给定转置矩阵所表示的变换应用于数值平面及其上的每个向量/类似 mobject。
返回所有添加到
self
的“幽灵”向量。返回与所传递矩阵表示的线性变换相对应的函数。
此方法返回一个动画,将“self.moving_mobjects”中的 mobject 移动到其对应的 .target 值。
此方法返回一个动画,将“pieces”中的任意 mobject 移动到其对应的 .target 值。
此方法返回一个动画,将“self.transformable_labels”中的所有标签移动到其对应的 .target。
返回与所传递转置矩阵表示的线性变换相对应的函数。
为当前 NumberPlane 返回一个单位正方形。
此方法返回一个动画,将“self.moving_vectors”中的 mobject 移动到其对应的 .target 值。
此方法旨在由通常被子类化且在调用 construct 方法之前涉及一些通用设置的任何场景实现。
update_default_configs
将向量坐标写入屏幕后,将其添加到特殊列表 self.foreground_mobjects,并返回表示向量坐标的列矩阵。
属性
相机
时间
自场景开始以来的时间。
- add_background_mobject(*mobjects)[source]¶
将 mobject 添加到特殊列表 self.background_mobjects。
- 参数:
**mobjects** (Mobject) – 要添加到列表中的 mobject。
- add_foreground_mobject(*mobjects)[source]¶
将 mobject 添加到特殊列表 self.foreground_mobjects。
- 参数:
**mobjects** (Mobject) – 要添加到列表中的 mobject。
- add_moving_mobject(mobject, target_mobject=None)[source]¶
将 mobject 添加到特殊列表 self.moving_mobject,并为 mobject 添加一个名为 mobject.target 的属性,该属性用于跟踪 mobject 将移动到何处或将变成什么等。
- add_special_mobjects(mob_list, *mobs_to_add)[source]¶
将 mobject 添加到一个单独的可跟踪列表,如果这些 mobject 具有额外的重要性。
- 参数:
**mob_list** (*list*) – 你想添加这些 mobject 的特殊列表。
**mobs_to_add** (Mobject) – 要添加的 mobject。
- add_title(title, scale_factor=1.5, animate=False)[source]¶
添加标题,先进行缩放,然后添加背景矩形,将其移动到顶部并添加到 foreground_mobjects,同时将其作为 self 的局部变量。返回场景。
- add_transformable_label(vector, label, transformation_name='L', new_label=None, **kwargs)[source]¶
用于创建和动画化向量可变换标签添加的方法。
- add_transformable_mobject(*mobjects)[source]¶
将 mobject 添加到特殊列表 self.transformable_mobjects。
- 参数:
**mobjects** (Mobject) – 要添加到列表中的 mobject。
- add_unit_square(animate=False, **kwargs)[source]¶
通过 self.get_unit_square 向场景添加一个单位正方形。
- 参数:
**animate** (*bool*) – 是否动画化添加过程(使用 DrawBorderThenFill)。
**kwargs** – self.get_unit_square() 的任何有效关键字参数。
- 返回:
单位正方形。
- 返回类型:
- add_vector(vector, color=ManimColor('#FFFF00'), **kwargs)[source]¶
向场景添加一个向量,并将其放入特殊列表 self.moving_vectors 中。
- apply_function(function, added_anims=[], **kwargs)[source]¶
将给定函数应用于 self.transformable_mobjects 中的每个 mobject,并播放显示此操作的动画。
- 参数:
**function** (*Callable*[[*ndarray*], *ndarray*]) – 影响 self.transformable_mobjects 中每个 mobject 各点的函数。
**added_anims** (*list*) – 需要与此同时播放的任何其他动画。
**kwargs** – self.play() 调用的任何有效关键字参数。
- apply_inverse(matrix, **kwargs)[source]¶
此方法将传递矩阵的逆所表示的线性变换应用于数值平面及其上的每个向量/类似 mobject。
- 参数:
**matrix** (*ndarray* | *list* | *tuple*) – 要应用其逆的矩阵。
**kwargs** – self.apply_matrix() 的任何有效关键字参数。
- apply_inverse_transpose(t_matrix, **kwargs)[source]¶
将给定转置矩阵所表示的变换的逆应用于数值平面及其上的每个向量/类似 mobject。
- 参数:
**t_matrix** (*ndarray* | *list* | *tuple*) – 矩阵。
**kwargs** – self.apply_transposed_matrix() 的任何有效关键字参数。
- apply_matrix(matrix, **kwargs)[source]¶
将给定矩阵所表示的变换应用于数值平面及其上的每个向量/类似 mobject。
- 参数:
**matrix** (*ndarray* | *list* | *tuple*) – 矩阵。
**kwargs** – self.apply_transposed_matrix() 的任何有效关键字参数。
- apply_nonlinear_transformation(function, **kwargs)[source]¶
将给定函数所表示的非线性变换应用于数值平面及其上的每个向量/类似 mobject。
- 参数:
**function** (*Callable*[[*ndarray*], *ndarray*]) – 函数。
**kwargs** – self.apply_function() 的任何有效关键字参数。
- apply_transposed_matrix(transposed_matrix, **kwargs)[source]¶
将给定转置矩阵所表示的变换应用于数值平面及其上的每个向量/类似 mobject。
- 参数:
**transposed_matrix** (*ndarray* | *list* | *tuple*) – 矩阵。
**kwargs** – self.apply_function() 的任何有效关键字参数。
- get_matrix_transformation(matrix)[source]¶
返回与所传递矩阵表示的线性变换相对应的函数。
- 参数:
**matrix** (*ndarray* | *list* | *tuple*) – 矩阵。
- get_moving_mobject_movement(func)[source]¶
此方法返回一个动画,将“self.moving_mobjects”中的 mobject 移动到其对应的 .target 值。func 是一个确定 .target 位置的函数。
- 参数:
**func** (*Callable*[[*ndarray*], *ndarray*]) – 确定移动中 mobject 的 .target 位置的函数。
- 返回:
移动的动画。
- 返回类型:
- get_piece_movement(pieces)[source]¶
此方法返回一个动画,将“pieces”中的任意 mobject 移动到其对应的 .target 值。如果 self.leave_ghost_vectors 为 True,则原始位置/mobject 的“幽灵”会留在屏幕上。
- 参数:
**pieces** (*list* | *tuple* | *ndarray*) – 必须显示其移动的片段。
- 返回:
移动的动画。
- 返回类型:
- get_transformable_label_movement()[source]¶
此方法返回一个动画,将“self.transformable_labels”中的所有标签移动到其对应的 .target。
- 返回:
移动的动画。
- 返回类型:
- get_transposed_matrix_transformation(transposed_matrix)[source]¶
返回与所传递转置矩阵表示的线性变换相对应的函数。
- 参数:
**transposed_matrix** (*ndarray* | *list* | *tuple*) – 矩阵。
- get_unit_square(color=ManimColor('#FFFF00'), opacity=0.3, stroke_width=3)[source]¶
为当前 NumberPlane 返回一个单位正方形。
- 参数:
**color** (*str*) – 所需颜色的十六进制颜色代码字符串。
**opacity** (*float*) – 正方形的不透明度。
**stroke_width** (*float*) – 正方形边框的像素笔画宽度。
- 返回类型: