相机

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

基础:object

基础相机类。

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

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

  • 背景 (np.ndarray | None) – background 设置为什么。默认情况下,None

  • pixel_height (int | None) – 场景的高度,以像素为单位。

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

  • kwargs – 要设置的附加参数 (background_color, background_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)

方法

adjust_out_of_range_points

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

adjusted_thickness

计算缩放相机的调整后的笔画宽度。

apply_fill

填充cairo上下文

apply_stroke

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

cache_cairo_context

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

capture_mobject

通过将mobjects存储在pixel_array中来捕获它们。

capture_mobjects

通过在pixel_array上打印来捕获mobjects。

convert_pixel_array

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

display_image_mobject

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

display_multiple_background_colored_vmobjects

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

display_multiple_image_mobjects

通过修改传递的pixel_array来显示多个图像对象。

display_multiple_non_background_colored_vmobjects

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

display_multiple_point_cloud_mobjects

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

display_multiple_vectorized_mobjects

在pixel_array中显示多个VMobjects

display_point_cloud

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

display_vectorized

在cairo上下文中显示一个VMobject

get_background_colored_vmobject_displayer

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

get_cached_cairo_context

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

get_cairo_context

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

get_coords_of_all_pixels

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

get_fill_rgbas

返回传递的VMobject的填充的RGBA数组

get_image

从传递的像素数组中返回图像,如果传递的像素数组为空,则从当前帧返回图像。

get_mobjects_to_display

用于获取要与相机一起显示的mobjects列表。

get_stroke_rgbas

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

get_thickening_nudges

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

init_background

初始化背景。

is_in_frame

检查传递的mobject是否在框架中。

make_background_from_func

通过使用coords_to_colors_func来确定每个像素的颜色,生成背景的像素数组。

on_screen_pixels

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

overlay_PIL_image

在传递的像素数组上叠加一个PIL图像。

overlay_rgba_array

在给定的像素数组上叠加一个RGBA数组。

points_to_pixel_coords

reset

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

reset_pixel_shape

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

resize_frame_shape

将frame_shape更改为匹配像素的宽高比,其中fixed_dimension确定frame_height或frame_width保持不变,而另一个相应更改。

set_background

将背景设置为传递的pixel_array,在转换为有效的RGB值之后。

set_background_from_func

使用coords_to_colors_func确定每个像素的颜色,将背景设置为像素数组。

set_cairo_context_color

设置cairo上下文的颜色

set_cairo_context_path

为cairo上下文设置路径,并传递vmobject

set_frame_to_background

set_pixel_array

将相机的像素数组设置为传递的像素数组。

thickened_coordinates

返回传递的像素坐标数组和加厚厚度的加厚坐标。

transform_points_pre_display

type_or_raise

返回mobject的类型,如果它是可以渲染的类型。

属性

background_color

background_opacity

adjust_out_of_range_points(points)[来源]

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

Parameters:

points (ndarray) – 需要调整的点

Returns:

调整后的分数。

Return type:

np.array

adjusted_thickness(thickness)[来源]

计算缩放相机的调整后的笔画宽度。

Parameters:

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

Returns:

调整后的笔画宽度,反映了使用相机进行缩放。

Return type:

浮点数

apply_fill(ctx, vmobject)[来源]

填充cairo上下文

Parameters:
  • ctx (Context) – Cairo上下文

  • vmobject (VMobject) – VMobject

Returns:

相机对象。

Return type:

Camera

apply_stroke(ctx, vmobject, background=False)[来源]

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

Parameters:
  • ctx (Context) – Cairo上下文

  • vmobject (VMobject) – VMobject

  • 背景 (布尔值) – 在应用此笔画宽度时是否考虑背景,默认为 False

Returns:

应用了描边的相机对象。

Return type:

Camera

cache_cairo_context(pixel_array, ctx)[来源]

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

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

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

capture_mobject(mobject, **kwargs)[source]

通过将mobjects存储在pixel_array中来捕获它们。

这是capture_mobjects()的单mobject版本。

Parameters:
capture_mobjects(mobjects, **kwargs)[来源]

通过在pixel_array上打印来捕获mobjects。

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

Parameters:

注释

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

convert_pixel_array(pixel_array, convert_from_floats=False)[source]

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

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

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

Returns:

新的转换后的像素数组。

Return type:

np.array

display_image_mobject(image_mobject, pixel_array)[来源]

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

Parameters:
  • image_mobject (AbstractImageMobject) – 要显示的imageMobject

  • pixel_array (ndarray) – 用于放置图像对象的像素数组。

display_multiple_background_colored_vmobjects(cvmobjects, pixel_array)[来源]

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

Parameters:
  • cvmobjects (list) – 彩色VM对象的列表

  • pixel_array (ndarray) – 像素数组。

Returns:

相机对象。

Return type:

Camera

display_multiple_image_mobjects(image_mobjects, pixel_array)[来源]

通过修改传递的pixel_array来显示多个图像对象。

Parameters:
  • image_mobjects (列表) – ImageMobjects 的列表

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

display_multiple_non_background_colored_vmobjects(vmobjects, pixel_array)[来源]

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

Parameters:
  • vmobjects (list) – VM对象的列表

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

display_multiple_point_cloud_mobjects(pmobjects, pixel_array)[来源]

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

Parameters:
  • pmobjects (list) – PMobjects 列表

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

display_multiple_vectorized_mobjects(vmobjects, pixel_array)[来源]

在pixel_array中显示多个VMobjects

Parameters:
  • vmobjects (列表) – 要显示的VMobjects列表

  • pixel_array (ndarray) – 像素数组

display_point_cloud(pmobject, points, rgbas, thickness, pixel_array)[source]

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

TODO: 为rgbas参数编写描述。

Parameters:
  • pmobject (PMobject) – 点云对象

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

  • rgbas (ndarray)

  • 厚度 (浮点数) – PMobject每个点的厚度

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

display_vectorized(vmobject, ctx)[来源]

在cairo上下文中显示一个VMobject

Parameters:
  • vmobject (VMobject) – 要显示的向量化Mobject

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

Returns:

相机对象

Return type:

Camera

get_background_colored_vmobject_displayer()[source]

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

Returns:

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

Return type:

背景颜色VM对象显示器

get_cached_cairo_context(pixel_array)[来源]

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

Parameters:

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

Returns:

缓存的cairo上下文。

Return type:

cairo.Context

get_cairo_context(pixel_array)[来源]

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

Parameters:

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

Returns:

像素数组的cairo上下文。

Return type:

cairo.Context

get_coords_of_all_pixels()[source]

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

Returns:

笛卡尔坐标的数组。

Return type:

np.ndarray

get_fill_rgbas(vmobject)[source]

返回传递的VMobject的填充的RGBA数组

Parameters:

vmobject (VMobject) – VMobject

Returns:

VMobject 填充的 RGBA 数组

Return type:

np.array

get_image(pixel_array=None)[来源]

从传递的像素数组中返回图像,如果传递的像素数组为空,则从当前帧返回图像。

Parameters:

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

Returns:

数组的PIL图像。

Return type:

PIL.图像

get_mobjects_to_display(mobjects, include_submobjects=True, excluded_mobjects=None)[来源]

用于获取要使用相机显示的mobjects列表。

Parameters:
  • mobjects (Iterable[Mobject]) – Mobjects

  • include_submobjects (bool) – 是否包含mobjects的子对象,默认为True

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

Returns:

mobjects列表

Return type:

列表

get_stroke_rgbas(vmobject, background=False)[来源]

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

Parameters:
  • vmobject (VMobject) – VMobject

  • 背景 (布尔值) – 在获取描边RGBAs时是否考虑背景,默认为False

Returns:

描边的RGBA数组。

Return type:

np.ndarray

get_thickening_nudges(thickness)[来源]

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

Parameters:

厚度 (浮点数)

Return type:

np.array

init_background()[来源]

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

is_in_frame(mobject)[source]

检查传递的mobject是否在框架中。

Parameters:

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

Returns:

如果在框架中为True,否则为False。

Return type:

布尔

make_background_from_func(coords_to_colors_func)[来源]

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

Parameters:

coords_to_colors_func (Callable[[ndarray], ndarray]) – 该函数的输入是一个(x,y)坐标对,其返回值必须是该点的颜色

Returns:

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

Return type:

np.array

on_screen_pixels(pixel_coords)[source]

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

Parameters:

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

Returns:

屏幕上的像素坐标。

Return type:

np.array

overlay_PIL_image(pixel_array, image)[来源]

在传递的像素数组上叠加一个PIL图像。

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

  • image (图片) – 要叠加的图像。

overlay_rgba_array(pixel_array, new_array)[source]

在给定的像素数组上叠加一个RGBA数组。

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

  • new_array (ndarray) – 要覆盖的新像素数组。

reset()[source]

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

Returns:

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

Return type:

Camera

reset_pixel_shape(new_height, new_width)[来源]

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

Parameters:
  • new_height (float) – 整个场景的新高度,单位为像素

  • new_width (float) – 整个场景的新宽度,单位为像素

resize_frame_shape(fixed_dimension=0)[来源]

将frame_shape更改为匹配像素的宽高比,其中fixed_dimension决定frame_height或frame_width保持不变,而另一个相应更改。

Parameters:

fixed_dimension (int) – 如果为0,高度将相对于宽度进行缩放;否则,宽度将相对于高度进行缩放。

set_background(pixel_array, convert_from_floats=False)[来源]

将背景设置为传递的pixel_array,在转换为有效的RGB值之后。

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

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

set_background_from_func(coords_to_colors_func)[来源]

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

Parameters:

coords_to_colors_func (Callable[[ndarray], ndarray]) – 该函数的输入是一个(x,y)坐标对,其返回值必须是该点的颜色

set_cairo_context_color(ctx, rgbas, vmobject)[source]

设置cairo上下文的颜色

Parameters:
  • ctx (Context) – Cairo上下文

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

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

Returns:

相机对象

Return type:

Camera

set_cairo_context_path(ctx, vmobject)[source]

为cairo上下文设置路径,并传递vmobject

Parameters:
  • ctx (Context) – Cairo上下文

  • vmobject (VMobject) – VMobject

Returns:

设置cairo_context_path后的Camera对象

Return type:

Camera

set_pixel_array(pixel_array, convert_from_floats=False)[source]

将相机的像素数组设置为传递的像素数组。

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

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

thickened_coordinates(pixel_coords, thickness)[source]

返回传递的像素坐标数组和加厚厚度的加厚坐标。

Parameters:
  • pixel_coords (ndarray) – 像素坐标

  • thickness (float) – 厚度

Returns:

加厚像素坐标的数组。

Return type:

np.array

type_or_raise(mobject)[来源]

返回mobject的类型,如果它是可以渲染的类型。

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

Parameters:

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

注释

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

Returns:

mobjects的类型,如果可以渲染的话。

Return type:

类型[Mobject]

Raises:

TypeError – 当mobject不是可以渲染的类的实例时。

Parameters:

mobject (Mobject)