空间操作¶
用于二维和三维向量的实用函数。
函数
- angle_axis_from_quaternion(quaternion)[source]¶
从四元数获取角度和轴。
- 参数:
quaternion (Sequence[float]) – 我们从中获取角度和轴的四元数。
- 返回:
给出角度和轴
- 返回类型:
Sequence[float]
- angle_between_vectors(v1, v2)[source]¶
返回两个向量之间的夹角。该角度始终在0到π之间。
- 参数:
v1 (ndarray) – 第一个向量。
v2 (ndarray) – 第二个向量。
- 返回:
向量之间的夹角。
- 返回类型:
浮点数
- angle_of_vector(vector)[source]¶
当向量投影到xy平面时,返回极坐标theta。
- 参数:
vector (Sequence[float] | ndarray) – 要查找角度的向量。
- 返回:
投影向量的角度。
- 返回类型:
浮点数
- cartesian_to_spherical(vec)[source]¶
返回一个数组,其中包含每个极坐标值(距离、phi、theta)对应的数字。
- 参数:
vec (Sequence[float]) – 一个numpy数组
[x, y, z]
。- 返回类型:
ndarray
- center_of_mass(points)[source]¶
获取空间中点的质心。
- 参数:
points (PointNDLike_Array) – 要查找质心的点。
- 返回:
这些点的质心。
- 返回类型:
np.ndarray
- compass_directions(n=4, start_vect=array([1., 0., 0.]))[source]¶
使用tau查找基准方向。
- 参数:
n (int) – 旋转量,默认为4
start_vect (ndarray) – 角度的起始方向,默认为RIGHT
- 返回:
已旋转的角度。
- 返回类型:
np.ndarray
- complex_func_to_R3_func(complex_func)[source]¶
- 参数:
complex_func (Callable[[complex], complex])
- 返回类型:
Callable[[Point3DLike], Point3D]
- cross2d(a, b)[source]¶
计算所传递向量(序列)的行列式。
- 参数:
a (Vector2D | Vector2D_Array) – 一个向量或一个向量序列。
b (Vector2D | Vector2D_Array) – 一个向量或一个向量序列。
- 返回:
指定向量前两个分量的行列式或行列式序列。
- 返回类型:
Sequence[float] | float
示例
>>> cross2d(np.array([1, 2]), np.array([3, 4])) np.int64(-2) >>> cross2d( ... np.array([[1, 2, 0], [1, 0, 0]]), ... np.array([[3, 4, 0], [0, 1, 0]]), ... ) array([-2, 1])
- earclip_triangulation(verts, ring_ends)[source]¶
返回一个索引列表,表示多边形(可能带孔)的三角剖分。
- 参数:
verts (ndarray) – verts是一个numpy点数组。
ring_ends (list) – ring_ends是一个索引列表,指示新路径的结束位置。
- 返回:
一个给出多边形三角剖分的索引列表。
- 返回类型:
list
- find_intersection(p0s, v0s, p1s, v1s, threshold=1e-05)[source]¶
返回通过p0方向v0的线与通过p1方向v1的线的交点(或此类点/方向数组的交点数组)。对于三维值,它返回射线p0 + v0 * t上最接近射线p1 + v1 * t的点。
- 参数:
p0s (Point3DLike_Array)
v0s (Vector3D_Array)
p1s (Point3DLike_Array)
v1s (Vector3D_Array)
threshold (float)
- 返回类型:
list[Point3D]
- get_winding_number(points)[source]¶
确定多边形围绕原点缠绕的次数。
方向以数学正向测量,即逆时针方向。
- 参数:
points (Sequence[ndarray]) – 查询的多边形的顶点。
- 返回类型:
浮点数
示例
>>> from manim import Square, get_winding_number >>> polygon = Square() >>> get_winding_number(polygon.get_vertices()) np.float64(1.0) >>> polygon.shift(2 * UP) Square >>> get_winding_number(polygon.get_vertices()) np.float64(0.0)
- line_intersection(line1, line2)[source]¶
返回两条线的交点,每条线由线上的一对不同点定义。
- 参数:
line1 (Sequence[ndarray]) – 确定第一条线的两个点的列表。
line2 (Sequence[ndarray]) – 确定第二条线的两个点的列表。
- 返回:
两条相交线的交点。
- 返回类型:
np.ndarray
- 抛出:
ValueError – 如果两条线不相交或坐标不在xy平面上,则会产生错误。
- midpoint(point1, point2)[source]¶
获取两点的中点。
- 参数:
point1 (Sequence[float]) – 第一个点。
point2 (Sequence[float]) – 第二个点。
- 返回:
这些点的中点
- 返回类型:
Union[float, np.ndarray]
- normalize(vect, fall_back=None)[source]¶
- 参数:
vect (ndarray | tuple[float])
fall_back (ndarray | None)
- 返回类型:
ndarray
- normalize_along_axis(array, axis)[source]¶
使用提供的轴归一化数组。
- 参数:
array (ndarray) – 需要归一化的数组。
axis (ndarray) – 要归一化的轴。
- 返回:
已根据轴归一化的数组。
- 返回类型:
np.ndarray
- perpendicular_bisector(line, norm_vector=array([0., 0., 1.]))[source]¶
返回一个包含两个点的列表,这些点对应于给定两点垂直平分线的两端。
- 参数:
line (Sequence[ndarray]) – 包含两个numpy数组点(对应于线的两端)的列表。
norm_vector (Vector3D) – 垂直于给定线和垂直平分线的向量。
- 返回:
一个包含两个numpy数组点的列表,这些点对应于垂直平分线的两端
- 返回类型:
list
- quaternion_conjugate(quaternion)[source]¶
用于查找四元数的共轭。
- 参数:
quaternion (Sequence[float]) – 您想要查找共轭的四元数。
- 返回:
四元数的共轭。
- 返回类型:
np.ndarray
- quaternion_from_angle_axis(angle, axis, axis_normalized=False)[source]¶
从角度和轴获取四元数。有关更多信息,请查看此维基百科页面。
- 参数:
angle (float) – 四元数的角度。
axis (ndarray) – 四元数的轴。
axis_normalized (bool) – 检查轴是否已归一化,默认为False
- 返回:
从角度和轴返回四元数
- 返回类型:
list[float]
- regular_vertices(n, *, radius=1, start_angle=None)[source]¶
围绕以原点为中心的圆生成等距顶点。
- 参数:
n (int) – 顶点数量
radius (float) – 顶点所在的圆的半径。
start_angle (float | None) –
顶点开始的角度。
如果未指定,对于偶数
n
值,将使用0
。对于奇数n
值,使用90度。
- 返回:
vertices (
numpy.ndarray
) – 等距顶点。start_angle (
float
) – 顶点开始的角度。
- 返回类型:
tuple[ndarray, float]
- rotate_vector(vector, angle, axis=array([0., 0., 1.]))[source]¶
旋转向量的函数。
- 参数:
vector (ndarray) – 要旋转的向量。
angle (float) – 旋转角度。
axis (ndarray) – 要旋转的轴,默认为OUT
- 返回:
带有提供角度和轴的旋转向量。
- 返回类型:
np.ndarray
- 抛出:
ValueError – 如果向量不是二维或三维。
- rotation_about_z(angle)[source]¶
返回给定角度的旋转矩阵。
- 参数:
angle (float) – 旋转矩阵的角度。
- 返回:
返回旋转后的矩阵。
- 返回类型:
np.ndarray
- rotation_matrix(angle, axis, homogeneous=False)[source]¶
在R^3中绕指定旋转轴的旋转。
- 参数:
angle (float)
axis (ndarray)
homogeneous (bool)
- 返回类型:
ndarray
- rotation_matrix_transpose_from_quaternion(quat)[source]¶
将四元数 quat 转换为等效的旋转矩阵表示。有关更多信息,请查看此页面。
- 参数:
quat (ndarray) – 要转换的四元数。
- 返回:
返回旋转矩阵表示,作为3x3矩阵或3x3xN多维数组返回。
- 返回类型:
List[np.ndarray]
- shoelace(x_y)[source]¶
鞋带公式的二维实现。
- 返回:
返回有符号面积。
- 返回类型:
浮点数
- 参数:
x_y (Point2D_Array)
- shoelace_direction(x_y)[source]¶
使用鞋带法确定的面积来确定输入点集是顺时针方向还是逆时针方向。
- 返回:
是
"CW"
(顺时针)或"CCW"
(逆时针)。- 返回类型:
str
- 参数:
x_y (Point2D_Array)