Camera

CameraFrame

class manimlib.camera.camera.CameraFrame(**kwargs)

相机所拍摄到的帧

get_center()

获取相机中心点

get_euler_angles()

获取欧拉角

get_focal_distance()

获取焦距

get_height()

获取物件高度

get_shape()

获取相机宽高

get_width()

获取物件宽度

increment_gamma(dgamma)

增加 自转角 的值

increment_phi(dphi)

增加 进动角 的值

increment_theta(dtheta)

增加 章动角 的值

reorient(theta_degrees=None, phi_degrees=None, gamma_degrees=None)

set_euler_angles 的另一种写法

rotate(angle, axis=array([0.0, 0.0, 1.0]), **kwargs)

旋转相机

set_euler_angles(theta=None, phi=None, gamma=None, units=1)

设置欧拉角

to_default_state()

相机恢复到默认位置

manimgl 版本,你可以通过改变 CameraFrame 的属性来控制相机所拍摄到的画面,也就是说,旋转、缩放画面大小都可以用这种方式来完成。

MoveCameraExample
class MoveCameraExample(Scene):
    def setup(self):
        self.plane = NumberPlane()
        self.plane.add_coordinate_labels()
        self.add(self.plane)

    def t_func(self, t):
        a, b = 3, 3
        return np.array([
            a * np.cos(t) / t,
            b * np.sin(t) / t,
            0
        ])

    def construct(self):
        frame = self.camera.frame
        curve = ParametricCurve(self.t_func, t_range=[0.1, 100, 0.05], color=YELLOW)
        self.add(curve)
        self.play(
            curve.animate.set_stroke(width=0.3),
            frame.animate.set_width(2).rotate(PI / 2),
            run_time=3
        )
        self.wait(0.5)

Camera

class manimlib.camera.camera.Camera(ctx=None, **kwargs)

摄像机

widcardw 在线瞎写,因为看不懂

  • frame_config : 相机帧参数

  • pixel_width : 像素宽度,默认 1920

  • pixel_height : 像素高度,默认 1080

  • frame_rate : 相机帧率,默认 30

  • light_source_position : 光源位置

  • anti_alias_width : 抗锯齿

capture(*mobjects, **kwargs)

捕获 mobjects 中的物体

clear()

清空帧缓冲

get_fbo(ctx, samples=0)

获取帧缓冲

get_frame_center()

获取相机帧中心

get_frame_height()

获取相机帧高度

get_frame_shape()

获取相机帧宽高

get_frame_width()

获取相机帧宽度

get_image(pixel_array=None)

获取当前帧图片

get_pixel_array()

获取当前帧 RGB 像素矩阵

get_pixel_height()

获取画面像素g高度

get_pixel_shape()

获取画面像素大小

get_pixel_width()

获取画面像素宽度

get_raw_fbo_data(dtype='f1')

获取源缓冲数据

get_render_group(shader_wrapper, single_use=True)

获取渲染所包含的成员

  • vbo : vertex data buffer

  • ibo : vertex index data buffer

  • vao : vertex array

  • prog : shader program

  • shader_wrapper : 材质包装

  • single_use : 单次使用

get_render_group_list(mobject)

获取渲染列表

get_shader_program(shader_wrapper)

获取着色器程序

get_texture()

获取资源

get_texture_id(path)

获取资源 id

refresh_perspective_uniforms()

似乎是更新透视

release_render_group(render_group)

释放渲染

release_static_mobjects()

释放静态物件

release_texture(path)

释放资源

render(render_group)

渲染

reset_pixel_shape(new_width, new_height)

重置像素宽高

resize_frame_shape(fixed_dimension=0)

重置帧大小以匹配画面像素比

fixed_dimension 控制高度不变宽度变化,或宽度不变高度变化

set_mobjects_as_static(*mobjects)

将物件设置为静态

Creates buffer and array objects holding each mobjects shader data

set_shader_uniforms(shader, shader_wrapper)

设置着色器的 uniform 变量

ThreeDCamera

class manimlib.camera.camera.ThreeDCamera(ctx=None, **kwargs)

仅用于保证旧版场景不崩溃

  • frame_config : 相机帧参数

  • pixel_width : 像素宽度,默认 1920

  • pixel_height : 像素高度,默认 1080

  • frame_rate : 相机帧率,默认 30

  • light_source_position : 光源位置

  • anti_alias_width : 抗锯齿