摄像机¶
完整名称: 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_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)
方法
如果传入数组中的任何点超出可行范围,它们将被适当调整。
计算缩放摄像机的调整笔画宽度。
填充cairo上下文
在cairo上下文中对VMobject应用描边。
将传入的像素数组缓存到Cairo上下文中
通过将其存储在
pixel_array
中来捕获物体。通过将mobject打印到
pixel_array
上来捕获它们。将包含浮点值的像素数组转换为正确的RGB值。
通过适当改变
pixel_array
来显示ImageMobject。显示多个与背景颜色相同的vmobject。
通过修改传入的
pixel_array
来显示多个图像物体。在cairo上下文中显示多个VMobject,只要它们没有背景颜色。
通过修改传入的像素数组来显示多个PMobject。
在
pixel_array
中显示多个VMobject。通过适当修改像素数组来显示PMobject。
在cairo上下文中显示VMobject
如果 background_colored_vmobject_displayer 存在则返回它,否则创建一个并返回。
如果传入像素数组的缓存cairo上下文存在,则返回它,否则返回None。
返回像素数组的cairo上下文,并将其缓存到 self.pixel_array_to_cairo_context。如果该数组已被缓存,则返回缓存版本。
返回每个像素的笛卡尔坐标。
返回传入VMobject填充的RGBA数组
从传入的像素数组中获取图像,如果传入的像素数组为None,则从当前帧获取。
用于获取要通过摄像机显示的物体列表。
获取传入VMobject描边的RGBA数组。
确定用于微调二维像素坐标的向量列表。
初始化背景。如果
self.background_image
是图像路径,则将该图像设置为背景;否则,默认背景颜色将填充背景。检查传入的物体是否在帧内。
通过使用 coords_to_colors_func 确定每个像素的颜色,为背景创建像素数组。 coords_to_colors_func 的每个输入是一个空间中的 (x, y) 对(普通空间坐标;不是像素坐标),每个输出预期是一个包含4个浮点数的RGBA数组。
从给定的像素坐标数组中返回屏幕上的像素数组。
在传入的像素数组上叠加PIL图像。
在给定像素数组上方叠加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上下文的颜色
为传入的vmobject设置cairo上下文路径
将帧设置为背景
将摄像机的像素数组设置为传入的像素数组。
返回传入像素坐标数组的增厚坐标以及增厚厚度。
显示前变换点
如果物体是可渲染类型,则返回其类型。
属性
背景颜色
背景不透明度
- 调整超出范围的点(points)[source]¶
如果传入数组中的任何点超出可行范围,它们将被适当调整。
- 参数:
points (ndarray) – 要调整的点
- 返回:
调整后的点。
- 返回类型:
np.array
- 调整后的厚度(thickness)[source]¶
计算缩放摄像机的调整笔画宽度。
- 参数:
thickness (float) – 物体的描边宽度。
- 返回:
反映摄像机缩放的调整后描边宽度。
- 返回类型:
浮点数
- 缓存cairo上下文(pixel_array, ctx)[source]¶
将传入的像素数组缓存到Cairo上下文中
- 参数:
pixel_array (ndarray) – 要缓存的像素数组
ctx (Context) – 要缓存到的上下文。
- 捕获物体(mobject, **kwargs)[source]¶
通过将其存储在
pixel_array
中来捕获物体。这是
capture_mobjects()
的单物体版本。- 参数:
mobject (Mobject) – 要捕获的物体。
kwargs (Any) – 要传递给
get_mobjects_to_display()
的关键字参数。
- 捕获多个物体(mobjects, **kwargs)[source]¶
通过将mobject打印到
pixel_array
上来捕获它们。这是将场景内容转换为数组,然后将数组转换为图像或视频的基本函数。
- 参数:
mobjects (Iterable[Mobject]) – 要捕获的物体。
kwargs – 要传递给
get_mobjects_to_display()
的关键字参数。
注意
有关当前可渲染的类列表,请参阅
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) – 要修改的像素数组。
- 获取背景色矢量物体显示器()[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
- 获取填充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
- 是否在帧内(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) – 要叠加的新像素数组。
- 重置像素形状(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)对且返回值为该点颜色的函数
- 设置像素数组(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