摄像机

完整名称: manim.camera.camera.Camera

class Camera(background_image=None, frame_center=array([0., 0., 0.]), image_mode='RGBA', n_channels=4, pixel_array_dtype='uint8', cairo_line_width_multiple=0.01, use_z_index=True, background=None, pixel_height=None, pixel_width=None, frame_height=None, frame_width=None, frame_rate=None, background_color=None, background_opacity=None, **kwargs)[source]

基类: object

基础摄像机类。

此对象负责在任何给定时刻屏幕上显示的内容。

参数:
  • background_image (str | None) – 作为背景图像的图片路径。如果未设置,背景将用 self.background_color 填充。

  • background (np.ndarray | None) – background 的设置值。默认为 None

  • pixel_height (int | None) – 场景的像素高度。

  • pixel_width (int | None) – 场景的像素宽度。

  • kwargs – 要设置的附加参数(background_colorbackground_opacity)。

  • frame_center (np.ndarray)

  • image_mode (str)

  • n_channels (int)

  • pixel_array_dtype (str)

  • cairo_line_width_multiple (float)

  • use_z_index (bool)

  • frame_height (float | None)

  • frame_width (float | None)

  • frame_rate (float | None)

  • background_color (ParsableManimColor | None)

  • background_opacity (float | None)

方法

调整超出范围的点

如果传入数组中的任何点超出可行范围,它们将被适当调整。

调整后的厚度

计算缩放摄像机的调整笔画宽度。

应用填充

填充cairo上下文

应用描边

在cairo上下文中对VMobject应用描边。

缓存cairo上下文

将传入的像素数组缓存到Cairo上下文中

捕获物体

通过将其存储在 pixel_array 中来捕获物体。

捕获Mobjects

通过将mobject打印到pixel_array上来捕获它们。

转换像素数组

将包含浮点值的像素数组转换为正确的RGB值。

显示图像物体

通过适当改变 pixel_array 来显示ImageMobject。

显示多个背景色矢量物体

显示多个与背景颜色相同的vmobject。

显示多个图像物体

通过修改传入的 pixel_array 来显示多个图像物体。

显示多个非背景色矢量物体

在cairo上下文中显示多个VMobject,只要它们没有背景颜色。

显示多个点云物体

通过修改传入的像素数组来显示多个PMobject。

显示多个矢量物体

pixel_array 中显示多个VMobject。

显示点云

通过适当修改像素数组来显示PMobject。

显示矢量化物体

在cairo上下文中显示VMobject

获取背景色矢量物体显示器

如果 background_colored_vmobject_displayer 存在则返回它,否则创建一个并返回。

获取缓存的cairo上下文

如果传入像素数组的缓存cairo上下文存在,则返回它,否则返回None。

获取cairo上下文

返回像素数组的cairo上下文,并将其缓存到 self.pixel_array_to_cairo_context。如果该数组已被缓存,则返回缓存版本。

获取所有像素的坐标

返回每个像素的笛卡尔坐标。

获取填充RGBA值

返回传入VMobject填充的RGBA数组

获取图像

从传入的像素数组中获取图像,如果传入的像素数组为None,则从当前帧获取。

获取要显示的物体

用于获取要通过摄像机显示的物体列表。

获取描边RGBA值

获取传入VMobject描边的RGBA数组。

获取增厚微调

确定用于微调二维像素坐标的向量列表。

初始化背景

初始化背景。如果 self.background_image 是图像路径,则将该图像设置为背景;否则,默认背景颜色将填充背景。

是否在帧内

检查传入的物体是否在帧内。

从函数创建背景

通过使用 coords_to_colors_func 确定每个像素的颜色,为背景创建像素数组。 coords_to_colors_func 的每个输入是一个空间中的 (x, y) 对(普通空间坐标;不是像素坐标),每个输出预期是一个包含4个浮点数的RGBA数组。

屏幕上的像素

从给定的像素坐标数组中返回屏幕上的像素数组。

叠加PIL图像

在传入的像素数组上叠加PIL图像。

叠加RGBA数组

在给定像素数组上方叠加RGBA数组。

点到像素坐标

重置

将摄像机的像素数组重置为背景的像素数组。

重置像素形状

此方法将单个像素的高度和宽度重置为传入的 new_height 和 new_width。

调整帧形状

改变 frame_shape 以匹配像素的宽高比,其中 fixed_dimension 决定 frame_height 或 frame_width 哪个保持固定,另一个相应改变。

设置背景

将背景设置为传入的 pixel_array,并将其转换为有效的RGB值。

从函数设置背景

使用 coords_to_colors_func 确定每个像素的颜色,将背景设置为像素数组。 coords_to_colors_func 的每个输入是一个空间中的 (x, y) 对(普通空间坐标;不是像素坐标),每个输出预期是一个包含4个浮点数的RGBA数组。

设置cairo上下文颜色

设置cairo上下文的颜色

设置cairo上下文路径

为传入的vmobject设置cairo上下文路径

将帧设置为背景

设置像素数组

将摄像机的像素数组设置为传入的像素数组。

增厚坐标

返回传入像素坐标数组的增厚坐标以及增厚厚度。

显示前变换点

类型或抛出异常

如果物体是可渲染类型,则返回其类型。

属性

背景颜色

背景不透明度

调整超出范围的点(points)[source]

如果传入数组中的任何点超出可行范围,它们将被适当调整。

参数:

points (ndarray) – 要调整的点

返回:

调整后的点。

返回类型:

np.array

调整后的厚度(thickness)[source]

计算缩放摄像机的调整笔画宽度。

参数:

thickness (float) – 物体的描边宽度。

返回:

反映摄像机缩放的调整后描边宽度。

返回类型:

浮点数

应用填充(ctx, vmobject)[source]

填充cairo上下文

参数:
  • ctx (Context) – cairo上下文

  • vmobject (VMobject) – 该VMobject

返回:

摄像机对象。

返回类型:

摄像机

应用描边(ctx, vmobject, background=False)[source]

在cairo上下文中对VMobject应用描边。

参数:
  • ctx (Context) – cairo上下文

  • vmobject (VMobject) – 该VMobject

  • background (bool) – 应用此描边宽度时是否考虑背景,默认为False。

返回:

应用描边后的摄像机对象。

返回类型:

摄像机

缓存cairo上下文(pixel_array, ctx)[source]

将传入的像素数组缓存到Cairo上下文中

参数:
  • pixel_array (ndarray) – 要缓存的像素数组

  • ctx (Context) – 要缓存到的上下文。

捕获物体(mobject, **kwargs)[source]

通过将其存储在 pixel_array 中来捕获物体。

这是 capture_mobjects() 的单物体版本。

参数:
捕获多个物体(mobjects, **kwargs)[source]

通过将mobject打印到pixel_array上来捕获它们。

这是将场景内容转换为数组,然后将数组转换为图像或视频的基本函数。

参数:

注意

有关当前可渲染的类列表,请参阅display_funcs()

转换像素数组(pixel_array, convert_from_floats=False)[source]

将包含浮点值的像素数组转换为正确的RGB值。

参数:
  • pixel_array (ndarray | list | tuple) – 要转换的像素数组。

  • convert_from_floats (bool) – 是否将浮点值转换为整数,默认为False。

返回:

新的、已转换的像素数组。

返回类型:

np.array

显示图像物体(image_mobject, pixel_array)[source]

通过适当改变 pixel_array 来显示ImageMobject。

参数:
  • image_mobject (AbstractImageMobject) – 要显示的图像物体

  • pixel_array (ndarray) – 放置图像物体的像素数组。

显示多个背景色矢量物体(cvmobjects, pixel_array)[source]

显示多个与背景颜色相同的vmobject。

参数:
  • cvmobjects (list) – 彩色VMobject列表

  • pixel_array (ndarray) – 像素数组。

返回:

摄像机对象。

返回类型:

摄像机

显示多个图像物体(image_mobjects, pixel_array)[source]

通过修改传入的 pixel_array 来显示多个图像物体。

参数:
  • image_mobjects (list) – ImageMobject列表

  • pixel_array (ndarray) – 要修改的像素数组。

显示多个非背景色矢量物体(vmobjects, pixel_array)[source]

在cairo上下文中显示多个VMobject,只要它们没有背景颜色。

参数:
  • vmobjects (list) – VMobject列表

  • pixel_array (ndarray) – 要添加VMobject的像素数组。

显示多个点云物体(pmobjects, pixel_array)[source]

通过修改传入的像素数组来显示多个PMobject。

参数:
  • pmobjects (list) – PMobject列表

  • pixel_array (ndarray) – 要修改的像素数组。

显示多个矢量物体(vmobjects, pixel_array)[source]

pixel_array 中显示多个VMobject。

参数:
  • vmobjects (list) – 要显示的VMobject列表

  • pixel_array (ndarray) – 像素数组

显示点云(pmobject, points, rgbas, thickness, pixel_array)[source]

通过适当修改像素数组来显示PMobject。

待办:为rgbas参数编写描述。

参数:
  • pmobject (PMobject) – 点云物体

  • points (list) – 要在点云物体中显示的点

  • rgbas (ndarray)

  • thickness (float) – PMobject每个点的厚度

  • pixel_array (ndarray) – 要修改的像素数组。

显示矢量化物体(vmobject, ctx)[source]

在cairo上下文中显示VMobject

参数:
  • vmobject (VMobject) – 要显示的矢量化物体

  • ctx (Context) – 要使用的cairo上下文。

返回:

摄像机对象

返回类型:

摄像机

获取背景色矢量物体显示器()[source]

如果 background_colored_vmobject_displayer 存在则返回它,否则创建一个并返回。

返回:

显示与背景颜色相同的VMobject的对象。

返回类型:

背景色矢量物体显示器

获取缓存的cairo上下文(pixel_array)[source]

如果传入像素数组的缓存cairo上下文存在,则返回它,否则返回None。

参数:

pixel_array (ndarray) – 要检查的像素数组。

返回:

缓存的cairo上下文。

返回类型:

cairo.Context

获取cairo上下文(pixel_array)[source]

返回像素数组的cairo上下文,并将其缓存到 self.pixel_array_to_cairo_context。如果该数组已被缓存,则返回缓存版本。

参数:

pixel_array (ndarray) – 要获取其cairo上下文的像素数组。

返回:

像素数组的cairo上下文。

返回类型:

cairo.Context

获取所有像素的坐标()[source]

返回每个像素的笛卡尔坐标。

返回:

笛卡尔坐标数组。

返回类型:

np.ndarray

获取填充RGBA值(vmobject)[source]

返回传入VMobject填充的RGBA数组

参数:

vmobject (VMobject) – 该VMobject

返回:

传入VMobject填充的RGBA数组

返回类型:

np.array

获取图像(pixel_array=None)[source]

从传入的像素数组中获取图像,如果传入的像素数组为None,则从当前帧获取。

参数:

pixel_array (ndarray | list | tuple | None) – 用于获取图像的像素数组,默认为None。

返回:

数组的PIL图像。

返回类型:

PIL.Image

获取要显示的物体(mobjects, include_submobjects=True, excluded_mobjects=None)[source]

用于获取要通过摄像机显示的物体列表。

参数:
  • mobjects (Iterable[Mobject]) – 物体

  • include_submobjects (bool) – 是否包含物体的子物体,默认为True。

  • excluded_mobjects (list | None) – 任何要排除的物体,默认为None。

返回:

物体列表

返回类型:

list

获取描边RGBA值(vmobject, background=False)[source]

获取传入VMobject描边的RGBA数组。

参数:
  • vmobject (VMobject) – 该VMobject

  • background (bool) – 获取描边RGBA时是否考虑背景,默认为False。

返回:

描边的RGBA数组。

返回类型:

np.ndarray

获取增厚微调(thickness)[source]

确定用于微调二维像素坐标的向量列表。

参数:

thickness (float)

返回类型:

np.array

初始化背景()[source]

初始化背景。如果 self.background_image 是图像路径,则将该图像设置为背景;否则,默认背景颜色将填充背景。

是否在帧内(mobject)[source]

检查传入的物体是否在帧内。

参数:

mobject (Mobject) – 需要进行检查的物体。

返回:

如果在帧内则为True,否则为False。

返回类型:

bool

从函数创建背景(coords_to_colors_func)[source]

通过使用 coords_to_colors_func 确定每个像素的颜色,为背景创建像素数组。 coords_to_colors_func 的每个输入是一个空间中的 (x, y) 对(普通空间坐标;不是像素坐标),每个输出预期是一个包含4个浮点数的RGBA数组。

参数:

coords_to_colors_func (Callable[[ndarray], ndarray]) – 输入为坐标(x,y)对且返回值为该点颜色的函数

返回:

然后可以传递给 set_background 的像素数组。

返回类型:

np.array

屏幕上的像素(pixel_coords)[source]

从给定的像素坐标数组中返回屏幕上的像素数组。

参数:

pixel_coords (ndarray) – 要检查的像素坐标。

返回:

屏幕上的像素坐标。

返回类型:

np.array

叠加PIL图像(pixel_array, image)[source]

在传入的像素数组上叠加PIL图像。

参数:
  • pixel_array (ndarray) – 像素数组

  • image (<module 'PIL.Image' from '/home/docs/checkouts/readthedocs.org/user_builds/manimce/envs/stable/lib/python3.13/site-packages/PIL/Image.py'>) – 要叠加的图像。

叠加RGBA数组(pixel_array, new_array)[source]

在给定像素数组上方叠加RGBA数组。

参数:
  • pixel_array (ndarray) – 要修改的原始像素数组。

  • new_array (ndarray) – 要叠加的新像素数组。

重置()[source]

将摄像机的像素数组重置为背景的像素数组。

返回:

设置像素数组后的摄像机对象。

返回类型:

摄像机

重置像素形状(new_height, new_width)[source]

此方法将单个像素的高度和宽度重置为传入的 new_height 和 new_width。

参数:
  • new_height (float) – 整个场景在像素中的新高度

  • new_width (float) – 整个场景在像素中的新宽度

调整帧形状(fixed_dimension=0)[source]

改变 frame_shape 以匹配像素的宽高比,其中 fixed_dimension 决定 frame_height 或 frame_width 哪个保持固定,另一个相应改变。

参数:

fixed_dimension (int) – 如果为0,则高度根据宽度缩放;否则,宽度根据高度缩放。

设置背景(pixel_array, convert_from_floats=False)[source]

将背景设置为传入的 pixel_array,并将其转换为有效的RGB值。

参数:
  • pixel_array (ndarray | list | tuple) – 用于设置背景的像素数组。

  • convert_from_floats (bool) – 是否将浮点值转换为正确的RGB有效值,默认为False。

从函数设置背景(coords_to_colors_func)[source]

使用 coords_to_colors_func 确定每个像素的颜色,将背景设置为像素数组。 coords_to_colors_func 的每个输入是一个空间中的 (x, y) 对(普通空间坐标;不是像素坐标),每个输出预期是一个包含4个浮点数的RGBA数组。

参数:

coords_to_colors_func (Callable[[ndarray], ndarray]) – 输入为坐标(x,y)对且返回值为该点颜色的函数

设置cairo上下文颜色(ctx, rgbas, vmobject)[source]

设置cairo上下文的颜色

参数:
  • ctx (Context) – cairo上下文

  • rgbas (ndarray) – 用于为上下文着色的RGBA数组。

  • vmobject (VMobject) – 用于设置颜色的VMobject。

返回:

摄像机对象

返回类型:

摄像机

设置cairo上下文路径(ctx, vmobject)[source]

为传入的vmobject设置cairo上下文路径

参数:
  • ctx (Context) – cairo上下文

  • vmobject (VMobject) – 该VMobject

返回:

设置cairo_context_path后的摄像机对象

返回类型:

摄像机

设置像素数组(pixel_array, convert_from_floats=False)[source]

将摄像机的像素数组设置为传入的像素数组。

参数:
  • pixel_array (ndarray | list | tuple) – 要转换并设置为摄像机像素数组的像素数组。

  • convert_from_floats (bool) – 是否将浮点值转换为正确的RGB值,默认为False。

增厚坐标(pixel_coords, thickness)[source]

返回传入像素坐标数组的增厚坐标以及增厚厚度。

参数:
  • pixel_coords (ndarray) – 像素坐标

  • thickness (float) – 厚度

返回:

增厚后的像素坐标数组。

返回类型:

np.array

类型或抛出异常(mobject)[source]

如果物体是可渲染类型,则返回其类型。

如果 mobject 是继承自可渲染类的实例,则返回其超类。例如,Square 的实例也是 VMobject 的实例,并且这些可以被渲染。因此,type_or_raise(Square()) 返回True。

参数:

mobject (Mobject) – 要获取其类型的对象。

注意

有关当前可渲染的类列表,请参阅display_funcs()

返回:

物体的类型,如果它可渲染。

返回类型:

Type[Mobject]

抛出:

TypeError – 当物体不是可渲染类的实例时。

参数:

mobject (Mobject)