三维坐标轴

限定名称: manim.mobject.graphing.coordinate\_systems.ThreeDAxes

class ThreeDAxes(x_range=(-6, 6, 1), y_range=(-5, 5, 1), z_range=(-4, 4, 1), x_length=10.5, y_length=10.5, z_length=6.5, z_axis_config=None, z_normal=array([0., -1., 0.]), num_axis_pieces=20, light_source=array([-7., -9., 10.]), depth=None, gloss=0.5, **kwargs)[来源]

基础:Axes

一组三维坐标轴。

Parameters:
  • x_range (Sequence[float] | None) – x轴的[x_min, x_max, x_step]值。

  • y_range (Sequence[float] | None) – y轴的[y_min, y_max, y_step]值。

  • z_range (Sequence[float] | None) – z轴的[z_min, z_max, z_step]值。

  • x_length (float | None) – x轴的长度。

  • y_length (float | None) – y轴的长度。

  • z_length (float | None) – z轴的长度。

  • z_axis_config (dict[str, Any] | None) – 传递给NumberLine的参数,影响z轴。

  • z_normal (Vector3D) – 法线的方向。

  • num_axis_pieces (int) – 用于构建轴的数量。

  • light_source (Sequence[float]) – 光源的方向。

  • depth – 目前无法使用。

  • gloss – 目前无法使用。

  • kwargs (dict[str, Any]) – 传递给Axes的额外参数。

方法

get_axis_labels

定义图表的x轴和y轴的标签。

get_y_axis_label

生成一个y轴标签。

get_z_axis_label

生成一个z轴标签。

属性

animate

用于动画化self的任何方法的应用。

animation_overrides

color

depth

mobject的深度。

fill_color

如果有多种颜色(用于渐变),则返回第一个颜色

height

mobject的高度。

n_points_per_curve

sheen_factor

stroke_color

width

mobject的宽度。

_original__init__(x_range=(-6, 6, 1), y_range=(-5, 5, 1), z_range=(-4, 4, 1), x_length=10.5, y_length=10.5, z_length=6.5, z_axis_config=None, z_normal=array([0., -1., 0.]), num_axis_pieces=20, light_source=array([-7., -9., 10.]), depth=None, gloss=0.5, **kwargs)

初始化自身。有关准确的签名,请参阅 help(type(self))。

Parameters:
  • x_range (序列[浮点数] | )

  • y_range (序列[浮点数] | )

  • z_range (序列[浮点数] | )

  • x_length (float | None)

  • y_length (float | None)

  • z_length (float | None)

  • z_axis_config (dict[str, Any] | None)

  • z_normal (Vector3D)

  • num_axis_pieces (int)

  • light_source (序列[浮点数])

  • kwargs (dict[str, Any])

Return type:

get_axis_labels(x_label='x', y_label='y', z_label='z')[source]

定义图表的x轴和y轴的标签。

为了增加对标签位置的控制,使用 get_x_axis_label()get_y_axis_label()get_z_axis_label()

Parameters:
  • x_label (float | str | Mobject) – x轴的标签。默认为MathTex,适用于strfloat输入。

  • y_label (float | str | Mobject) – y轴的标签。默认为MathTex,适用于strfloat类型的输入。

  • z_label (float | str | Mobject) – z轴的标签。默认为MathTex用于strfloat输入。

Returns:

一个VGroup,包含x轴、y轴和z轴的标签。

Return type:

VGroup

示例

示例:GetAxisLabelsExample

../_images/GetAxisLabelsExample-2.png
from manim import *

class GetAxisLabelsExample(ThreeDScene):
    def construct(self):
        self.set_camera_orientation(phi=2*PI/5, theta=PI/5)
        axes = ThreeDAxes()
        labels = axes.get_axis_labels(
            Text("x-axis").scale(0.7), Text("y-axis").scale(0.45), Text("z-axis").scale(0.45)
        )
        self.add(axes, labels)
class GetAxisLabelsExample(ThreeDScene):
    def construct(self):
        self.set_camera_orientation(phi=2*PI/5, theta=PI/5)
        axes = ThreeDAxes()
        labels = axes.get_axis_labels(
            Text("x-axis").scale(0.7), Text("y-axis").scale(0.45), Text("z-axis").scale(0.45)
        )
        self.add(axes, labels)

get_y_axis_label(label, edge=array([1., 1., 0.]), direction=array([1., 1., 0.]), buff=0.1, rotation=1.5707963267948966, rotation_axis=array([0., 0., 1.]), **kwargs)[来源]

生成一个y轴标签。

Parameters:
  • 标签 (浮点数 | 字符串 | Mobject) – 标签。默认为 MathTex 用于 字符串浮点数 输入。

  • edge (Sequence[float]) – 标签将被添加到的y轴的边缘,默认为 UR

  • 方向 (序列[浮点数]) – 允许从边缘进一步定位标签,默认为 UR

  • buff (float) – 标签与线条的距离,默认为 SMALL_BUFF

  • rotation (float) – 标签旋转的角度,默认为 PI/2

  • rotation_axis (Vector3D) – 标签旋转的轴,默认为 OUT

Returns:

定位的标签。

Return type:

Mobject

示例

示例:GetYAxisLabelExample

../_images/GetYAxisLabelExample-2.png
from manim import *

class GetYAxisLabelExample(ThreeDScene):
    def construct(self):
        ax = ThreeDAxes()
        lab = ax.get_y_axis_label(Tex("$y$-label"))
        self.set_camera_orientation(phi=2*PI/5, theta=PI/5)
        self.add(ax, lab)
class GetYAxisLabelExample(ThreeDScene):
    def construct(self):
        ax = ThreeDAxes()
        lab = ax.get_y_axis_label(Tex("$y$-label"))
        self.set_camera_orientation(phi=2*PI/5, theta=PI/5)
        self.add(ax, lab)

get_z_axis_label(label, edge=array([0., 0., 1.]), direction=array([1., 0., 0.]), buff=0.1, rotation=1.5707963267948966, rotation_axis=array([1., 0., 0.]), **kwargs)[来源]

生成一个z轴标签。

Parameters:
  • 标签 (浮点数 | 字符串 | Mobject) – 标签。默认为 MathTex 用于 字符串浮点数 输入。

  • edge (Vector3D) – 标签将被添加到的z轴的边缘,默认为 OUT

  • 方向 (Vector3D) – 允许从边缘进一步定位标签,默认情况下为 RIGHT

  • buff (float) – 标签与线条的距离,默认为 SMALL_BUFF

  • rotation (float) – 标签旋转的角度,默认为 PI/2

  • rotation_axis (Vector3D) – 标签旋转的轴,默认为 RIGHT

  • kwargs (任意)

Returns:

定位的标签。

Return type:

Mobject

示例

示例:GetZAxisLabelExample

../_images/GetZAxisLabelExample-1.png
from manim import *

class GetZAxisLabelExample(ThreeDScene):
    def construct(self):
        ax = ThreeDAxes()
        lab = ax.get_z_axis_label(Tex("$z$-label"))
        self.set_camera_orientation(phi=2*PI/5, theta=PI/5)
        self.add(ax, lab)
class GetZAxisLabelExample(ThreeDScene):
    def construct(self):
        ax = ThreeDAxes()
        lab = ax.get_z_axis_label(Tex("$z$-label"))
        self.set_camera_orientation(phi=2*PI/5, theta=PI/5)
        self.add(ax, lab)