CoordinateSystems¶
声明
坐标系在新版中改动幅度较大,整体用法基本不变,一些参数定义更加规范化
坐标轴上的数(TODO)
CoordinateSystem¶
- class manimlib.mobject.coordinate_systems.CoordinateSystem(**kwargs)¶
Axes 和 NumberPlane 的抽象基类
x_range
和y_range
控制坐标轴范围和分割精度,格式为x_range=[x_min, x_max, dx]
width
和height
控制坐标轴的宽度和高度
- angle_of_tangent(x: float, graph: ParametricCurve, dx: float = 1e-08) float ¶
获取横坐标为 x 的点处切线的倾斜角
- c2p(*coords: float)¶
coords_to_point
的简写
- abstract coords_to_point(*coords: float) ndarray ¶
输入坐标轴上的二维坐标,返回场景的绝对坐标,(x, y) -> array[x', y', 0]
- get_axis(index: int) NumberLine ¶
获取坐标轴 Mobject
- get_graph(function: Callable[[float], float], x_range: Sequence[float] | None = None, **kwargs) ParametricCurve ¶
绘制函数图像,并且自动移动到坐标轴的相对位置,使用
ParametricCurve
x_range=[x_min, x_max, dx]
: 图像定义域
- get_graph_label(graph: ParametricCurve, label: str | Mobject = 'f(x)', x: float | None = None, direction: np.ndarray = array([1., 0., 0.]), buff: float = 0.25, color: ManimColor | None = None) Tex | Mobject ¶
给函数图像标上文本标签
- get_h_line(point: ndarray, **kwargs)¶
传入一个点,过该点作水平线
- get_h_line_to_graph(x: float, graph: ParametricCurve, **kwargs)¶
以 x 为纵坐标~~(为什么不用 y 呢)~~作水平线并与函数图像相交
- get_origin() ndarray ¶
获取坐标原点的绝对坐标
- get_parametric_curve(function: Callable[[float], np.ndarray], **kwargs) ParametricCurve ¶
传入一个参数方程,绘制一条参数曲线
- get_riemann_rectangles(graph: ParametricCurve, x_range: Sequence[float] = None, dx: float | None = None, input_sample_type: str = 'left', stroke_width: float = 1, stroke_color: ManimColor = '#000000', fill_opacity: float = 1, colors: Iterable[ManimColor] = ('#58C4DD', '#83C167'), stroke_background: bool = True, show_signed_area: bool = True) VGroup ¶
绘制一系列黎曼矩形填充图像下方的区域
x_range = [x_min, x_max, dx]
可以指定范围,其中dx
为分割精度input_sample_type
指定矩形的左上角、上边缘中心、右上角抵在图像上
- get_tangent_line(x: float, graph: ParametricCurve, length: float = 5, line_func: Type[T] = <class 'manimlib.mobject.geometry.Line'>) T ¶
绘制横坐标为 x 的点处的切线,返回一个 Line Mobject
- get_v_line(point: ndarray, **kwargs)¶
传入一个点,过该点作铅垂线
- get_v_line_to_graph(x: float, graph: ParametricCurve, **kwargs)¶
以 x 为横坐标作铅垂线并与函数图像相交
- i2gp(x: float, graph: ParametricCurve) ndarray | None ¶
input_to_graph_point
的简写
- input_to_graph_point(x: float, graph: ParametricCurve) ndarray | None ¶
传入一个 x 和一条参数曲线,返回图像上以该 x 为横坐标的点的绝对坐标
- p2c(point: ndarray)¶
point_to_coords
的简写
- abstract point_to_coords(point: ndarray) tuple[float, ...] ¶
输入场景的绝对坐标,返回坐标轴上的二维坐标,array[x, y, 0] -> (x', y')
- slope_of_tangent(x: float, graph: ParametricCurve, **kwargs) float ¶
获取横坐标为 x 的点处切线的斜率
Axes¶
- class manimlib.mobject.coordinate_systems.Axes(x_range: Sequence[float] | None = None, y_range: Sequence[float] | None = 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_config
和y_axis_config
中给出才有效x_range
和y_range
控制坐标轴范围和分割精度 格式为x_range=[x_min, x_max, dx]
width
和height
控制坐标轴的宽度和高度
- add_coordinate_labels(x_values: Iterable[float] | None = None, y_values: Iterable[float] | None = None, **kwargs) VGroup ¶
给坐标轴标上数字
- coords_to_point(*coords: float) ndarray ¶
输入坐标轴上的二维坐标,返回场景的绝对坐标,(x, y) -> array([x', y', 0])
- get_all_ranges() list[Sequence[float]] ¶
获取 x 和 y 的范围
- point_to_coords(point: ndarray) tuple[float, ...] ¶
输入场景的绝对坐标,返回坐标轴上的二维坐标,array([x, y, 0]) -> (x', y')
ThreeDAxes¶
- class manimlib.mobject.coordinate_systems.ThreeDAxes(x_range: Sequence[float] | None = None, y_range: Sequence[float] | None = None, z_range: Sequence[float] | None = None, **kwargs)¶
继承于
Axes
的三维坐标系,包含 xyzx_range
,y_range
,z_range
控制坐标轴范围和分割精度,格式为x_range=[x_min, x_max, dx]
width
,height
,depth
控制坐标轴的宽度、高度、深度
- get_all_ranges() list[Sequence[float]] ¶
获取 x 和 y 的范围
NumberPlane¶
- class manimlib.mobject.coordinate_systems.NumberPlane(x_range: Sequence[float] | None = None, y_range: Sequence[float] | None = None, **kwargs)¶
带有网格线的二维坐标系
x_range
和y_range
控制坐标轴范围和分割精度 格式为x_range=[x_min, x_max, dx]
width
和height
控制坐标轴的宽度和高度
- prepare_for_nonlinear_transform(num_inserted_curves: int = 50)¶
将坐标系的每一条线进行分割,以适配即将施加的非线性变换
ComplexPlane¶
- class manimlib.mobject.coordinate_systems.ComplexPlane(x_range: Sequence[float] | None = None, y_range: Sequence[float] | None = None, **kwargs)¶
复平面坐标系
x_range
和y_range
控制坐标轴范围和分割精度 格式为x_range=[x_min, x_max, dx]
width
和height
控制坐标轴的宽度和高度
- add_coordinate_labels(numbers: list[complex] | None = None, skip_first: bool = True, **kwargs)¶
给坐标轴加上数字
- n2p(number: complex | float) ndarray ¶
number_to_point 的简写
- number_to_point(number: complex | float) ndarray ¶
输入一个复数,返回该数对应的点的绝对坐标
- p2n(point: ndarray) complex ¶
point_to_number 的简写
- point_to_number(point: ndarray) complex ¶
输入一个绝对坐标,返回复平面上该点对应的复数