typing¶
Manim 中使用的自定义类型定义。
开发者注意事项
在源代码中,有多个字符串如下所示:
'''
[CATEGORY]
<category_name>
'''
所有在这些字符串下定义的类型别名都将自动归入该类别。
如果需要定义新类别,请遵循上述格式。
类型别名
基本数据类型¶
颜色类型¶
- class ManimColorDType¶
ManimFloat
ManimColorInternal
中使用的数据类型:介于 0 和 1 之间的双精度浮点数。
- class RGB_Array_Float¶
NDArray[
ManimColorDType
]形状: (3,)
一个包含 3 个介于 0 和 1 之间浮点数的
numpy.ndarray
,表示 RGB 格式的颜色。其分量依次描述了所表示颜色中红色、绿色和蓝色的强度。
- class RGB_Tuple_Float¶
tuple[float, float, float]
形状: (3,)
一个包含 3 个介于 0 和 1 之间浮点数的元组,表示 RGB 格式的颜色。
其分量依次描述了所表示颜色中红色、绿色和蓝色的强度。
- class RGB_Tuple_Int¶
tuple[int, int, int]
形状: (3,)
一个包含 3 个介于 0 和 255 之间整数的元组,表示 RGB 格式的颜色。
其分量依次描述了所表示颜色中红色、绿色和蓝色的强度。
- class RGBA_Array_Float¶
NDArray[
ManimColorDType
]形状: (4,)
一个包含 4 个介于 0 和 1 之间浮点数的
numpy.ndarray
,表示 RGBA 格式的颜色。其分量依次描述了所表示颜色中红色、绿色、蓝色和 Alpha(不透明度)的强度。
- class RGBA_Tuple_Float¶
tuple[float, float, float, float]
形状: (4,)
一个包含 4 个介于 0 和 1 之间浮点数的元组,表示 RGBA 格式的颜色。
其分量依次描述了所表示颜色中红色、绿色、蓝色和 Alpha(不透明度)的强度。
- class RGBA_Tuple_Int¶
tuple[int, int, int, int]
形状: (4,)
一个包含 4 个介于 0 和 255 之间整数的元组,表示 RGBA 格式的颜色。
其分量依次描述了所表示颜色中红色、绿色、蓝色和 Alpha(不透明度)的强度。
- class HSV_Array_Float¶
RGB_Array_Float
形状: (3,)
一个包含 3 个介于 0 和 1 之间浮点数的
numpy.ndarray
,表示 HSV(或 HSB)格式的颜色。其分量依次描述了所表示颜色中的色相 (Hue)、饱和度 (Saturation) 和明度 (Value)(或亮度 (Brightness))。
- class HSV_Tuple_Float¶
RGB_Tuple_Float
形状: (3,)
一个包含 3 个介于 0 和 1 之间浮点数的元组,表示 HSV(或 HSB)格式的颜色。
其分量依次描述了所表示颜色中的色相 (Hue)、饱和度 (Saturation) 和明度 (Value)(或亮度 (Brightness))。
- class HSVA_Array_Float¶
RGBA_Array_Float
形状: (4,)
一个包含 4 个介于 0 和 1 之间浮点数的
numpy.ndarray
,表示 HSVA(或 HSBA)格式的颜色。其分量依次描述了所表示颜色中的色相 (Hue)、饱和度 (Saturation) 和明度 (Value)(或亮度 (Brightness))。
- class HSVA_Tuple_Float¶
RGBA_Tuple_Float
形状: (4,)
一个包含 4 个介于 0 和 1 之间浮点数的元组,表示 HSVA(或 HSBA)格式的颜色。
其分量依次描述了所表示颜色中的色相 (Hue)、饱和度 (Saturation) 和明度 (Value)(或亮度 (Brightness))。
- class HSL_Array_Float¶
RGB_Array_Float
形状: (3,)
一个包含 3 个介于 0 和 1 之间浮点数的
numpy.ndarray
,表示 HSL 格式的颜色。其分量依次描述了所表示颜色中的色相 (Hue)、饱和度 (Saturation) 和亮度 (Lightness)。
- class HSL_Tuple_Float¶
RGB_Tuple_Float
形状: (3,)
一个包含 3 个介于 0 和 1 之间浮点数的
numpy.ndarray
,表示 HSL 格式的颜色。其分量依次描述了所表示颜色中的色相 (Hue)、饱和度 (Saturation) 和亮度 (Lightness)。
- class ManimColorInternal¶
RGBA_Array_Float
形状: (4,)
ManimColor
使用的内部颜色表示,遵循 RGBA 格式。它是一个
numpy.ndarray
,由 4 个介于 0 和 1 之间的浮点数组成,分别描述了所表示颜色中红色、绿色、蓝色和 Alpha(不透明度)的强度。
点类型¶
- class PointDType¶
ManimFloat
表示点的数组的默认类型:一个双精度浮点值。
- class Point2D¶
NDArray[
PointDType
]形状: (2,)
一个表示 2 维点的 NumPy 数组:
[float, float]
。
- class Point2D_Array¶
NDArray[
PointDType
]形状: (M, 2)
一个表示
Point2D
对象序列的 NumPy 数组:[[float, float], ...]
。
- class Point2DLike_Array¶
Point2D_Array
| Sequence[Point2DLike
]形状: (M, 2)
一个
Point2DLike
对象的数组:[[float, float], ...]
。这表示任何可以转换为
Point2D_Array
NumPy 数组的对象。通常,需要
Point2D_Array
作为参数的函数或方法可以处理传入Point3D_Array
的情况。请参阅您正在使用的函数的文档以获取更多类型信息。
- class Point3D¶
NDArray[
PointDType
]形状: (3,)
一个表示 3 维点的 NumPy 数组:
[float, float, float]
。
- class Point3D_Array¶
NDArray[
PointDType
]形状: (M, 3)
一个表示
Point3D
对象序列的 NumPy 数组:[[float, float, float], ...]
。
- class Point3DLike_Array¶
Point3D_Array
| Sequence[Point3DLike
]形状: (M, 3)
一个
Point3D
对象的数组:[[float, float, float], ...]
。这表示任何可以转换为
Point3D_Array
NumPy 数组的对象。请参阅您正在使用的函数的文档以获取更多类型信息。
- class PointND¶
NDArray[
PointDType
]形状: (N,)
一个表示 N 维点的 NumPy 数组:
[float, ...]
。
- class PointND_Array¶
NDArray[
PointDType
]形状: (M, N)
一个表示
PointND
对象序列的 NumPy 数组:[[float, ...], ...]
。
- class PointNDLike_Array¶
PointND_Array
| Sequence[PointNDLike
]形状: (M, N)
一个
PointND
对象的数组:[[float, ...], ...]
。这表示任何可以转换为
PointND_Array
NumPy 数组的对象。请参阅您正在使用的函数的文档以获取更多类型信息。
向量类型¶
- class Vector2D¶
NDArray[
PointDType
]形状: (2,)
一个 2 维向量:
[float, float]
。
- class Vector2D_Array¶
NDArray[
PointDType
]形状: (M, 2)
一个
Vector2D
对象的数组:[[float, float], ...]
。通常,需要
Vector2D_Array
作为参数的函数或方法可以处理传入Vector3D_Array
的情况。
- class Vector3D¶
NDArray[
PointDType
]形状: (3,)
一个 3 维向量:
[float, float, float]
。
- class Vector3D_Array¶
NDArray[
PointDType
]形状: (M, 3)
一个
Vector3D
对象的数组:[[float, float, float], ...]
。
- class VectorND¶
NDArray[
PointDType
]形状 (N,)
一个 \(N\) 维向量:
[float, ...]
。注意
请勿与
Vector
VM对象混淆!此类型别名被命名为“VectorND”而不是“Vector”以避免潜在的名称冲突。
- class VectorND_Array¶
NDArray[
PointDType
]形状 (M, N)
一个
VectorND
对象的数组:[[float, ...], ...]
。
- class RowVector¶
NDArray[
PointDType
]形状: (1, N)
一个行向量:
[[float, ...]]
。
- class ColVector¶
NDArray[
PointDType
]形状: (N, 1)
一个列向量:
[[float], [float], ...]
。
矩阵类型¶
- class MatrixMN¶
NDArray[
PointDType
]形状: (M, N)
一个矩阵:
[[float, ...], [float, ...], ...]
。
贝塞尔类型¶
- class QuadraticBezierPoints¶
Point3D_Array
形状: (3, 3)
一个由三个 3D 控制点组成的
Point3D_Array
,用于单个二次贝塞尔曲线:[[float, float, float], [float, float, float], [float, float, float]]
。
- class QuadraticBezierPointsLike¶
QuadraticBezierPoints
| tuple[Point3DLike
,Point3DLike
,Point3DLike
]形状: (3, 3)
一个由三个 3D 控制点组成的
Point3DLike_Array
,用于单个二次贝塞尔曲线:[[float, float, float], [float, float, float], [float, float, float]]
。这表示任何可以转换为
QuadraticBezierPoints
NumPy 数组的对象。
- class QuadraticBezierPoints_Array¶
NDArray[
PointDType
]形状: (N, 3, 3)
一个包含 \(N\) 个
QuadraticBezierPoints
对象的 NumPy 数组:[[[float, float, float], [float, float, float], [float, float, float]], ...]
。
- class QuadraticBezierPointsLike_Array¶
QuadraticBezierPoints_Array
| Sequence[QuadraticBezierPointsLike
]形状: (N, 3, 3)
一个包含 \(N\) 个
QuadraticBezierPointsLike
对象的序列:[[[float, float, float], [float, float, float], [float, float, float]], ...]
。这表示任何可以转换为
QuadraticBezierPoints_Array
NumPy 数组的对象。
- class QuadraticBezierPath¶
Point3D_Array
形状: (3*N, 3)
一个包含 \(3N\) 个点的
Point3D_Array
,其中连续的 \(N\) 个 3 点块的每个块都表示一个二次贝塞尔曲线:[[float, float, float], ...], ...]
。请参阅您正在使用的函数的文档以获取更多类型信息。
- class QuadraticBezierPathLike¶
Point3DLike_Array
形状: (3*N, 3)
一个包含 \(3N\) 个点的
Point3DLike_Array
,其中连续的 \(N\) 个 3 点块的每个块都表示一个二次贝塞尔曲线:[[float, float, float], ...], ...]
。这表示任何可以转换为
QuadraticBezierPath
NumPy 数组的对象。请参阅您正在使用的函数的文档以获取更多类型信息。
- class QuadraticSpline¶
QuadraticBezierPath
形状: (3*N, 3)
是
QuadraticBezierPath
的一个特例,其中所有 \(N\) 条二次贝塞尔曲线相互连接,形成一个二次样条:[[float, float, float], ...], ...]
。请参阅您正在使用的函数的文档以获取更多类型信息。
- class QuadraticSplineLike¶
QuadraticBezierPathLike
形状: (3*N, 3)
QuadraticBezierPathLike
的一个特例,其中所有 \(N\) 条二次贝塞尔曲线相互连接,形成一个二次样条:[[float, float, float], ...], ...]
。这表示任何可以转换为 :class:
QuadraticSpline
NumPy 数组的对象。请参阅您正在使用的函数的文档以获取更多类型信息。
- class CubicBezierPoints¶
Point3D_Array
shape: (4, 3)
一个
Point3D_Array
,包含单个三次贝塞尔曲线的四个三维控制点:[[float, float, float], [float, float, float], [float, float, float], [float, float, float]]
。
- class CubicBezierPointsLike¶
CubicBezierPoints
| tuple[Point3DLike
,Point3DLike
,Point3DLike
,Point3DLike
]shape: (4, 3)
一个
Point3DLike_Array
,包含单个三次贝塞尔曲线的4个控制点:[[float, float, float], [float, float, float], [float, float, float], [float, float, float]]
。这表示任何可以转换为 :class:
CubicBezierPoints
NumPy 数组的对象。
- class CubicBezierPoints_Array¶
NDArray[
PointDType
]shape: (N, 4, 3)
一个 NumPy 数组,包含 \(N\) 个
CubicBezierPoints
对象:[[[float, float, float], [float, float, float], [float, float, float], [float, float, float]], ...]
。
- class CubicBezierPointsLike_Array¶
CubicBezierPoints_Array
| Sequence[CubicBezierPointsLike
]shape: (N, 4, 3)
一个包含 \(N\) 个
CubicBezierPointsLike
对象的序列:[[[float, float, float], [float, float, float], [float, float, float], [float, float, float]], ...]
。这表示任何可以转换为 :class:
CubicBezierPoints_Array
NumPy 数组的对象。
- class CubicBezierPath¶
Point3D_Array
shape: (4*N, 3)
一个
Point3D_Array
,包含 \(4N\) 个点,其中 \(N\) 个连续的4点块中的每一个都表示一条三次贝塞尔曲线:[[float, float, float], ...], ...]
。请参阅您正在使用的函数的文档以获取更多类型信息。
- class CubicBezierPathLike¶
Point3DLike_Array
shape: (4*N, 3)
一个
Point3DLike_Array
,包含 \(4N\) 个点,其中 \(N\) 个连续的4点块中的每一个都表示一条三次贝塞尔曲线:[[float, float, float], ...], ...]
。这表示任何可以转换为 :class:
CubicBezierPath
NumPy 数组的对象。请参阅您正在使用的函数的文档以获取更多类型信息。
- class CubicSpline¶
CubicBezierPath
shape: (4*N, 3)
CubicBezierPath
的一个特例,其中所有 \(N\) 条三次贝塞尔曲线相互连接,形成一个三次样条:[[float, float, float], ...], ...]
。请参阅您正在使用的函数的文档以获取更多类型信息。
- class CubicSplineLike¶
CubicBezierPathLike
shape: (4*N, 3)
CubicBezierPath
的一个特例,其中所有 \(N\) 条三次贝塞尔曲线相互连接,形成一个三次样条:[[float, float, float], ...], ...]
。这表示任何可以转换为 :class:
CubicSpline
NumPy 数组的对象。请参阅您正在使用的函数的文档以获取更多类型信息。
- class BezierPoints¶
Point3D_Array
shape: (PPC, 3)
一个
Point3D_Array
,包含单个 \(n\) 阶贝塞尔曲线的 \(\text{PPC}\) 个控制点(\(\text{PPC: Points Per Curve} = n + 1\)):[[float, float, float], ...]
。请参阅您正在使用的函数的文档以获取更多类型信息。
- class BezierPointsLike¶
Point3DLike_Array
shape: (PPC, 3)
一个
Point3DLike_Array
,包含单个 \(n\) 阶贝塞尔曲线的 \(\text{PPC}\) 个控制点(\(\text{PPC: Points Per Curve} = n + 1\)):[[float, float, float], ...]
。这表示任何可以转换为 :class:
BezierPoints
NumPy 数组的对象。请参阅您正在使用的函数的文档以获取更多类型信息。
- class BezierPoints_Array¶
NDArray[
PointDType
]shape: (N, PPC, 3)
一个 NumPy 数组,包含 \(N\) 个
BezierPoints
对象,每个对象包含 \(\text{PPC}\) 个Point3D
对象(\(\text{PPC: Points Per Curve} = n + 1\)):[[[float, float, float], ...], ...]
。请参阅您正在使用的函数的文档以获取更多类型信息。
- class BezierPointsLike_Array¶
BezierPoints_Array
| Sequence[BezierPointsLike
]shape: (N, PPC, 3)
一个包含 \(N\) 个
BezierPointsLike
对象的序列,每个对象包含 \(\text{PPC}\) 个Point3DLike
对象(\(\text{PPC: Points Per Curve} = n + 1\)):[[[float, float, float], ...], ...]
。这表示任何可以转换为 :class:
BezierPoints_Array
NumPy 数组的对象。请参阅您正在使用的函数的文档以获取更多类型信息。
- class BezierPath¶
Point3D_Array
shape: (PPC*N, 3)
一个
Point3D_Array
,包含 \(\text{PPC} \cdot N\) 个点,其中 \(N\) 个连续的 \(\text{PPC}\) 控制点块中的每一个都表示一条 \(n\) 阶贝塞尔曲线(\(\text{PPC: Points Per Curve} = n + 1\)):[[float, float, float], ...], ...]
。请参阅您正在使用的函数的文档以获取更多类型信息。
- class BezierPathLike¶
Point3DLike_Array
shape: (PPC*N, 3)
一个
Point3DLike_Array
,包含 \(\text{PPC} \cdot N\) 个点,其中 \(N\) 个连续的 \(\text{PPC}\) 控制点块中的每一个都表示一条 \(n\) 阶贝塞尔曲线(\(\text{PPC: Points Per Curve} = n + 1\)):[[float, float, float], ...], ...]
。这表示任何可以转换为 :class:
BezierPath
NumPy 数组的对象。请参阅您正在使用的函数的文档以获取更多类型信息。
- class Spline¶
BezierPath
shape: (PPC*N, 3)
BezierPath
的一个特例,其中所有 \(N\) 条由 \(\text{PPC}\) 个Point3D
对象组成的贝塞尔曲线(\(\text{PPC: Points Per Curve} = n + 1\))相互连接,形成一个 \(n\) 阶样条:[[float, float, float], ...], ...]
。请参阅您正在使用的函数的文档以获取更多类型信息。
- class SplineLike¶
BezierPathLike
shape: (PPC*N, 3)
BezierPathLike
的一个特例,其中所有 \(N\) 条由 \(\text{PPC}\) 个Point3D
对象组成的贝塞尔曲线(\(\text{PPC: Points Per Curve} = n + 1\))相互连接,形成一个 \(n\) 阶样条:[[float, float, float], ...], ...]
。这表示任何可以转换为 :class:
Spline
NumPy 数组的对象。请参阅您正在使用的函数的文档以获取更多类型信息。
- class FlatBezierPoints¶
NDArray[
PointDType
] | tuple[float, ...]shape: (3*PPC*N,)
一个扁平化的贝塞尔控制点数组:
[float, ...]
。
函数类型¶
- class PathFuncType¶
Callable[[
Point3DLike
,Point3DLike
, float],Point3DLike
]
- class MultiMappingFunction¶
Callable[[
Point3D_Array
],Point3D_Array
]一个将 :class:
Point3D_Array
映射到另一个 :class:Point3D_Array
的函数。
图像类型¶
- class PixelArray¶
NDArray[
ManimInt
]shape: (height, width) | (height, width, 3) | (height, width, 4)
一个栅格化图像,高度为
height
像素,宽度为width
像素。数组中的每个值都是一个介于 0 到 255 之间的整数。
每个像素要么由一个表示其亮度(用于灰度图像)的单个整数表示,要么由一个
RGB_Array_Int
或一个RGBA_Array_Int
表示。
- class GrayscalePixelArray¶
PixelArray
shape: (height, width)
一个 100% 不透明的灰度
PixelArray
,其中每个像素值都是一个ManimInt
,表示其亮度(黑 -> 灰 -> 白)。
- class RGBPixelArray¶
PixelArray
shape: (height, width, 3)
一个 100% 不透明的彩色
PixelArray
,其中每个像素值都是一个RGB_Array_Int
对象。
- class RGBAPixelArray¶
PixelArray
shape: (height, width, 4)
一个彩色的
PixelArray
,其中像素可以是透明的。每个像素值都是一个RGBA_Array_Int
对象。