线性变换场景

限定名称: 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)[来源]

基础类:VectorScene

这个场景包含了一些特殊的方法,使其特别适合展示线性变换。

Parameters:
  • 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()

方法

add_background_mobject

将mobjects添加到特殊列表self.background_mobjects中。

add_foreground_mobject

将mobjects添加到特殊列表self.foreground_mobjects中。

add_moving_mobject

将mobject添加到特殊列表self.moving_mobject中,并为mobject添加一个名为mobject.target的属性,该属性用于跟踪mobject将要移动到的位置或变成的状态等。

add_special_mobjects

将具有额外重要性的mobjects添加到一个可以跟踪的单独列表中。

add_title

在缩放后添加一个标题,添加一个背景矩形,将其移动到顶部并添加到foreground_mobjects中,将其作为self的局部变量添加。

add_transformable_label

用于创建并为向量的可变换标签添加动画的方法。

add_transformable_mobject

将mobjects添加到特殊列表self.transformable_mobjects中。

add_unit_square

通过self.get_unit_square向场景中添加一个单位正方形。

add_vector

向场景中添加一个向量,并将其放入特殊列表 self.moving_vectors 中。

apply_function

将给定的函数应用于self.transformable_mobjects中的每个mobject,并播放显示此操作的动画。

apply_inverse

此方法将传递矩阵的逆所表示的线性变换应用于数字平面及其上的每个向量/相似对象。

apply_inverse_transpose

将给定转置矩阵表示的变换的逆应用于数字平面及其上的每个向量/相似对象。

apply_matrix

将给定矩阵表示的变换应用于数字平面,以及其上的每个向量/相似物体。

apply_nonlinear_transformation

将由给定函数表示的非线性变换应用于数字平面及其上的每个向量/相似对象。

apply_transposed_matrix

将给定转置矩阵表示的变换应用于数字平面及其上的每个向量/相似物体。

get_ghost_vectors

返回所有曾经添加到self的幽灵向量。

get_matrix_transformation

返回一个与传入矩阵表示的线性变换相对应的函数。

get_moving_mobject_movement

此方法返回一个动画,该动画将“self.moving_mobjects”中的mobject移动到其对应的.target值。

get_piece_movement

此方法返回一个动画,该动画将任意mobject“分段”移动到其对应的.target值。

get_transformable_label_movement

此方法返回一个动画,该动画将“self.transformable_labels”中的所有标签移动到其对应的.target。

get_transposed_matrix_transformation

返回一个与传递的转置矩阵所表示的线性变换相对应的函数。

get_unit_square

返回当前NumberPlane的单位正方形。

get_vector_movement

此方法返回一个动画,该动画将“self.moving_vectors”中的mobject移动到其对应的.target值。

setup

这是为了由任何通常被子类化的场景实现,并且在调用构造方法之前涉及一些常见的设置。

update_default_configs

write_vector_coordinates

返回一个列矩阵,表示向量坐标,在将它们写入屏幕后,并将它们添加到特殊列表 self.foreground_mobjects 中

属性

camera

add_background_mobject(*mobjects)[source]

将mobjects添加到特殊列表self.background_mobjects中。

Parameters:

*mobjects (Mobject) – 要添加到列表中的mobjects。

add_foreground_mobject(*mobjects)[source]

将mobjects添加到特殊列表self.foreground_mobjects中。

Parameters:

*mobjects (Mobject) – 要添加到列表中的mobjects

add_moving_mobject(mobject, target_mobject=None)[source]

将mobject添加到特殊列表 self.moving_mobject中,并为mobject添加一个属性 称为mobject.target,该属性 用于跟踪mobject将要移动到的位置 或变成什么等。

Parameters:
  • mobject (Mobject) – 要添加到列表中的mobjects

  • target_mobject (Mobject | None) – 移动对象所前往的目标等。

add_special_mobjects(mob_list, *mobs_to_add)[来源]

将mobjects添加到一个可以跟踪的单独列表中,如果这些mobjects具有一些额外的重要性。

Parameters:
  • mob_list (list) – 您想要添加这些mobjects的特殊列表。

  • *mobs_to_add (Mobject) – 要添加的mobjects。

add_title(title, scale_factor=1.5, animate=False)[source]

在缩放后添加一个标题,添加背景矩形,将其移动到顶部并添加到foreground_mobjects中,将其作为self的局部变量。返回场景。

Parameters:
  • title (str | MathTex | Tex) – 标题应该是什么。

  • scale_factor (float) – 标题应该缩放的比例。

  • animate (bool) – 是否要动画化添加过程。

Returns:

添加了标题的场景。

Return type:

LinearTransformationScene

add_transformable_label(vector, label, transformation_name='L', new_label=None, **kwargs)[来源]

用于创建并为向量添加可变形标签的方法。

Parameters:
  • vector (Vector) – 必须为其添加标签的向量。

  • 标签 (MathTex | str) – 标签的MathTex/字符串。

  • transformation_name (str | MathTex) – 作为标签赋予转换的名称。

  • new_label (str | MathTex | None) – 线性变换后标签应显示的内容

  • **kwargs – get_vector_label 的任何有效关键字参数

Returns:

标签的MathTex。

Return type:

MathTex

add_transformable_mobject(*mobjects)[来源]

将mobjects添加到特殊列表self.transformable_mobjects中。

Parameters:

*mobjects (Mobject) – 要添加到列表中的mobjects。

add_unit_square(animate=False, **kwargs)[来源]

通过 self.get_unit_square 向场景中添加一个单位正方形。

Parameters:
  • animate (bool) – 是否使用DrawBorderThenFill进行动画添加。

  • **kwargs – self.get_unit_square() 的任何有效关键字参数

Returns:

单位正方形。

Return type:

Square

add_vector(vector, color=ManimColor('#FFFF00'), **kwargs)[来源]

向场景中添加一个向量,并将其放入特殊列表 self.moving_vectors 中。

Parameters:
  • vector (Arrow | list | tuple | ndarray) – 它可以是一个预先制作的图形向量,或者是一个的坐标。

  • color (str) – 向量的十六进制颜色字符串。 只有在‘vector’不是Arrow时才会考虑此参数。默认为YELLOW。

  • **kwargs – VectorScene.add_vector 的任何有效关键字参数。

Returns:

表示向量的箭头。

Return type:

Arrow

apply_function(function, added_anims=[], **kwargs)[来源]

将给定的函数应用于self.transformable_mobjects中的每个mobject,并播放显示此操作的动画。

Parameters:
  • function (Callable[[ndarray], ndarray]) – 影响self.transformable_mobjects中每个对象的每个点的函数。

  • added_anims (列表) – 需要与此动画同时播放的任何其他动画。

  • **kwargs – 任何有效的 self.play() 调用的关键字参数。

apply_inverse(matrix, **kwargs)[来源]

此方法将传递矩阵的逆所表示的线性变换应用于数字平面,以及其上的每个向量/相似对象。

Parameters:
  • matrix (ndarray | list | tuple) – 要应用逆矩阵的矩阵。

  • **kwargs – self.apply_matrix() 的任何有效关键字参数

apply_inverse_transpose(t_matrix, **kwargs)[source]

将给定转置矩阵表示的变换的逆应用于数字平面及其上的每个向量/相似物体。

Parameters:
  • t_matrix (ndarray | list | tuple) – 矩阵。

  • **kwargs – self.apply_transposed_matrix() 的任何有效关键字参数

apply_matrix(matrix, **kwargs)[来源]

将给定矩阵表示的变换应用于数字平面,以及其上的每个向量/相似mobject。

Parameters:
  • matrix (ndarray | list | tuple) – 矩阵。

  • **kwargs – self.apply_transposed_matrix() 的任何有效关键字参数

apply_nonlinear_transformation(function, **kwargs)[来源]

将给定函数表示的非线性变换应用于数字平面及其上的每个向量/相似对象。

Parameters:
  • function (Callable[[ndarray], ndarray]) – 函数。

  • **kwargs – self.apply_function() 的任何有效关键字参数

apply_transposed_matrix(transposed_matrix, **kwargs)[source]

将给定转置矩阵所表示的变换应用于数字平面,以及其上的每个向量/相似物体。

Parameters:
  • transposed_matrix (ndarray | list | tuple) – 矩阵。

  • **kwargs – self.apply_function() 的任何有效关键字参数

get_ghost_vectors()[来源]

返回所有曾经添加到self的幽灵向量。每个元素是两个幽灵向量的VGroup

Return type:

VGroup

get_matrix_transformation(matrix)[来源]

返回一个与传入矩阵表示的线性变换相对应的函数。

Parameters:

matrix (ndarray | list | tuple) – 矩阵。

get_moving_mobject_movement(func)[来源]

此方法返回一个动画,该动画将“self.moving_mobjects”中的mobject移动到其对应的.target值。func是一个确定.target位置的函数。

Parameters:

func (Callable[[ndarray], ndarray]) – 确定移动对象的 .target 去向的函数。

Returns:

运动的动画。

Return type:

动画

get_piece_movement(pieces)[来源]

此方法返回一个动画,该动画将任意mobject“分段”移动到其对应的.target值。如果self.leave_ghost_vectors为True,原始位置/mobject的幽灵将留在屏幕上。

Parameters:

pieces (list | tuple | ndarray) – 必须显示移动的棋子。

Returns:

运动的动画。

Return type:

动画

get_transformable_label_movement()[来源]

此方法返回一个动画,该动画将“self.transformable_labels”中的所有标签移动到其对应的.target。

Returns:

运动的动画。

Return type:

动画

get_transposed_matrix_transformation(transposed_matrix)[来源]

返回一个函数,该函数对应于由传递的转置矩阵表示的线性变换。

Parameters:

transposed_matrix (ndarray | list | tuple) – 矩阵。

get_unit_square(color=ManimColor('#FFFF00'), opacity=0.3, stroke_width=3)[来源]

返回当前NumberPlane的单位正方形。

Parameters:
  • color (str) – 所需颜色的十六进制颜色代码字符串。

  • opacity (float) – 正方形的不透明度

  • stroke_width (float) – 正方形边框的stroke_width,单位为像素

Return type:

Square

get_vector_movement(func)[source]

此方法返回一个动画,该动画将“self.moving_vectors”中的mobject移动到其对应的.target值。func是一个确定.target去向的函数。

Parameters:

func (Callable[[ndarray], ndarray]) – 确定移动对象的 .target 去向的函数。

Returns:

运动的动画。

Return type:

动画

setup()[来源]

这是为了由任何通常被子类化的场景实现,并且在调用构造方法之前涉及一些常见的设置。

write_vector_coordinates(vector, **kwargs)[source]

返回一个列矩阵,表示向量坐标,在将它们写入屏幕后,并将它们添加到特殊列表self.foreground_mobjects中

Parameters:
  • vector (Arrow) – 表示向量的箭头。

  • **kwargs – VectorScene.write_vector_coordinates 的任何有效关键字参数

Returns:

表示向量的列矩阵。

Return type:

Matrix