CoordinateSystems

声明

坐标系在新版中改动幅度较大,整体用法基本不变,一些参数定义更加规范化

坐标轴上的数(TODO)

CoordinateSystem

class manimlib.mobject.coordinate_systems.CoordinateSystem(**kwargs)

Axes 和 NumberPlane 的抽象基类

  • x_rangey_range 控制坐标轴范围和分割精度,格式为 x_range=[x_min, x_max, dx]

  • widthheight 控制坐标轴的宽度和高度

angle_of_tangent(x, graph, dx=1e-08)

获取横坐标为 x 的点处切线的倾斜角

c2p(*coords)

coords_to_point 的简写

coords_to_point(*coords)

输入坐标轴上的二维坐标,返回场景的绝对坐标,(x, y) -> array[x’, y’, 0]

get_axis(index)

获取坐标轴 Mobject

get_axis_labels(x_label_tex='x', y_label_tex='y')

获取 x 轴和 y 轴上的标志(一个 VGroup)

get_graph(function, x_range=None, **kwargs)

绘制函数图像,并且自动移动到坐标轴的相对位置,使用 ParametricCurve

  • x_range=[x_min, x_max, dx] : 图像定义域

get_graph_label(graph, label='f(x)', x=None, direction=array([1.0, 0.0, 0.0]), buff=0.25, color=None)

给函数图像标上文本标签

get_h_line(point, **kwargs)

传入一个点,过该点作水平线

get_h_line_to_graph(x, graph, **kwargs)

以 x 为纵坐标~~(为什么不用 y 呢)~~作水平线并与函数图像相交

get_origin()

获取坐标原点的绝对坐标

get_parametric_curve(function, **kwargs)

传入一个参数方程,绘制一条参数曲线

get_riemann_rectangles(graph, x_range=None, dx=None, input_sample_type='left', stroke_width=1, stroke_color='#000000', fill_opacity=1, colors='#58C4DD', '#83C167', show_signed_area=True)

绘制一系列矩形填充图像下方的区域

  • x_range = [x_min, x_max, dx] 可以指定范围,其中 dx 为分割精度

  • input_sample_type 指定矩形的左上角、上边缘中心、右上角抵在图像上

get_tangent_line(x, graph, length=5, line_func=<class 'manimlib.mobject.geometry.Line'>)

绘制横坐标为 x 的点处的切线,返回一个 Line Mobject

get_v_line(point, **kwargs)

传入一个点,过该点作铅垂线

get_v_line_to_graph(x, graph, **kwargs)

以 x 为横坐标作铅垂线并与函数图像相交

i2gp(x, graph)

input_to_graph_point 的简写

input_to_graph_point(x, graph)

传入一个 x 和一条参数曲线,返回图像上以该 x 为横坐标的点的绝对坐标

p2c(point)

point_to_coords 的简写

point_to_coords(point)

输入场景的绝对坐标,返回坐标轴上的二维坐标,array[x, y, 0] -> (x’, y’)

slope_of_tangent(x, graph, **kwargs)

获取横坐标为 x 的点处切线的斜率

Axes

class manimlib.mobject.coordinate_systems.Axes(x_range=None, y_range=None, **kwargs)

xOy 二维坐标系,由两条 NumberLine 组成

  • x_axis_config 中放入 x 轴的参数,注意每一个坐标轴都是一个 NumberLine,所以其中的参数列表详见 NumberLine

  • y_axis_config 中放入 y 轴的参数,同上

  • axis_config
    • include_tip 是否包含箭头

    • numbers_to_exclude 在给坐标轴标上数字时,在这个列表中的数字会被排除

另外,给坐标轴设置颜色最好使用 set_color 方法,因为 color 参数需要在 x_axis_configy_axis_config 中给出才有效

  • x_rangey_range 控制坐标轴范围和分割精度 格式为 x_range=[x_min, x_max, dx]

  • widthheight 控制坐标轴的宽度和高度

add_coordinate_labels(x_values=None, y_values=None, **kwargs)

给坐标轴标上数字

coords_to_point(*coords)

输入坐标轴上的二维坐标,返回场景的绝对坐标,(x, y) -> array([x’, y’, 0])

get_all_ranges()

获取 x 和 y 的范围

get_axes()

获取坐标系

point_to_coords(point)

输入场景的绝对坐标,返回坐标轴上的二维坐标,array([x, y, 0]) -> (x’, y’)

ThreeDAxes

class manimlib.mobject.coordinate_systems.ThreeDAxes(x_range=None, y_range=None, z_range=None, **kwargs)

继承于 Axes 的三维坐标系,包含 xyz

  • x_range, y_range, z_range 控制坐标轴范围和分割精度,格式为 x_range=[x_min, x_max, dx]

  • width, height, depth 控制坐标轴的宽度、高度、深度

get_all_ranges()

获取 x 和 y 的范围

NumberPlane

class manimlib.mobject.coordinate_systems.NumberPlane(x_range=None, y_range=None, **kwargs)

带有网格线的二维坐标系

  • x_rangey_range 控制坐标轴范围和分割精度 格式为 x_range=[x_min, x_max, dx]

  • widthheight 控制坐标轴的宽度和高度

get_axes()

获取坐标系

get_vector(coords, **kwargs)

输入一个二维坐标,绘制一个【从坐标轴原点到该点的向量】

prepare_for_nonlinear_transform(num_inserted_curves=50)

将坐标系的每一条线进行分割,以适配即将施加的非线性变换

ComplexPlane

class manimlib.mobject.coordinate_systems.ComplexPlane(x_range=None, y_range=None, **kwargs)

复平面坐标系

  • x_rangey_range 控制坐标轴范围和分割精度 格式为 x_range=[x_min, x_max, dx]

  • widthheight 控制坐标轴的宽度和高度

add_coordinate_labels(numbers=None, skip_first=True, **kwargs)

给坐标轴加上数字

n2p(number)

number_to_point 的简写

number_to_point(number)

输入一个复数,返回该数对应的点的绝对坐标

p2n(point)

point_to_number 的简写

point_to_number(point)

输入一个绝对坐标,返回复平面上该点对应的复数