ThreeDCamera

ThreeDCamera 是一个3D相机类,只通过给3D物体施加 rotation_matrix 来 将3D物体转为2D,因此,manim的3D效果不是很好,很多问题不宜解决(例如穿模)。 在 ThreeDSceneSpecialThreeDScene 中被默认使用。

ThreeDCamera

class manimlib.camera.three_d_camera.ThreeDCamera(*args, **kwargs)

使用球坐标系,phi,theta 和球坐标系中意义相同。 distance 表示画面扭曲程度,不表示相机距离。 gamma 表示相机转角。 frame_center 表示相机的中心,为一个 ndarrayshould_apply_shading 是一个bool值,为True时根据光源位置设置光泽。 light_source_start_point 为一个 ndarray 表示光源位置

add_fixed_in_frame_mobjects(*mobjects)

mobjects 固定在屏幕上(2D)

add_fixed_orientation_mobjects(*mobjects, use_static_center_func=False, center_func=None)

mobjects 固定在相机中(3D)

capture_mobjects(mobjects, **kwargs)

捕获 mobjects 中的所有物体

generate_rotation_matrix()

根据角度获取旋转矩阵,将3D映射到2D

get_mobjects_to_display(*args, **kwargs)

获取所有要显示的物体

get_value_trackers()

获取存储phi,theta,distance,gamma的ValueTracker

modified_rgbas(vmobject, rgbas)

vmobject 的颜色数组 rgbas 加入光照处理

project_points(points)

使用 rotation_matrix 处理所有物体的点

remove_fixed_in_frame_mobjects(*mobjects)

将固定在屏幕上的 mobjects 移除固定

remove_fixed_orientation_mobjects(*mobjects)

将固定在相机中的 mobjects 移除固定

transform_points_pre_display(mobject, points)

调用 project_points 处理 mobject