Space_ops¶
manimlib/utils/space_ops.py
这个文件中主要实现了和空间坐标计算有关的函数
-
manimlib.utils.space_ops.
get_norm
(vect)¶ 模长
返回向量vect的模长
-
manimlib.utils.space_ops.
quaternion_mult
(q1, q2)¶ 四元数相乘
返回两个 四元数 q1,q2相乘的乘积
-
manimlib.utils.space_ops.
quaternion_from_angle_axis
(angle, axis)¶ 根据轴-角确定的用于旋转的四元数 [cos(θ/2), sin(θ/2)u]
根据 轴-角 确定用于旋转的 四元数
返回[cos(angle/2), sin(abgle/2)*axis]
-
manimlib.utils.space_ops.
angle_axis_from_quaternion
(quaternion)¶ 从四元数确定旋转轴-角
返回从四元数确定旋转的轴和角
-
manimlib.utils.space_ops.
quaternion_conjugate
(quaternion)¶ 共轭四元数
返回quaternion的共轭四元数
-
manimlib.utils.space_ops.
rotate_vector
(vector, angle, axis=array([0.0, 0.0, 1.0]))¶ 旋转向量 2D-复数运算 3D-四元数qvq_inv
返回将vector以axis为轴,旋转angle角度后的向量
若vector是二维ndarray,则使用复数运算
若vector是三维ndarray,则使用四元数运算
-
manimlib.utils.space_ops.
thick_diagonal
(dim, thickness=2)¶ 对角线为1 其余为0,对角线宽度由thickness决定
>>> thick_diagonal(3, 1) [[1, 0, 0], [0, 1, 0], [0, 0, 1]] >>> thick_diagonal(3, 2) [[1, 1, 0], [1, 1, 1], [0, 1, 1]]
返回一个dim*dim大小,对角线宽度为thickness的方阵
-
manimlib.utils.space_ops.
rotation_matrix
(angle, axis)¶ 通过轴-角确定旋转矩阵
返回通过角angle轴axis确定的旋转矩阵
-
manimlib.utils.space_ops.
rotation_about_z
(angle)¶ 沿z轴旋转angle角(右手螺旋)
返回沿z轴旋转angle的旋转矩阵
-
manimlib.utils.space_ops.
z_to_vector
(vector)¶ 返回能使z轴变换到vector的矩阵
返回可以使z轴方向旋转到vector方向的变换矩阵
-
manimlib.utils.space_ops.
angle_between
(v1, v2)¶ 返回两向量夹角
返回两向量v1,v2的夹角
-
manimlib.utils.space_ops.
angle_of_vector
(vector)¶ 在xy平面上投影的极坐标θ
返回vector在xy平面投影的极坐标系下的theta
-
manimlib.utils.space_ops.
angle_between_vectors
(v1, v2)¶ 返回两向量夹角
返回两向量v1,v2的夹角
-
manimlib.utils.space_ops.
normalize
(vect, fall_back=None)¶
返回vect的单位向量
若vect为零向量,且fall_back=None,返回零向量
若vect为零向量,且fall_back不为None,返回fall_back
-
manimlib.utils.space_ops.
cross
(v1, v2)¶ 两向量叉积
返回两向量v1,v2的叉积
-
manimlib.utils.space_ops.
get_unit_normal
(v1, v2)¶ 法向量
返回向量v1,v2确定的平面的法向量
-
manimlib.utils.space_ops.
compass_directions
(n=4, start_vect=array([1.0, 0.0, 0.0]))¶ 将TAU分成n份,从start_vect开始返回沿每个方向的单位向量
将TAU分成n份,从start_vect开始返回沿每个方向的单位向量
-
manimlib.utils.space_ops.
complex_to_R3
(complex_num)¶ 复数转化为坐标(z轴为0)
复数转化为坐标(z轴为0)
-
manimlib.utils.space_ops.
R3_to_complex
(point)¶ 取坐标前两轴为复数
取坐标前两轴为复数
-
manimlib.utils.space_ops.
complex_func_to_R3_func
(complex_func)¶ 将复函数转化为针对坐标的函数
将针对复数的函数转化为针对坐标的函数
-
manimlib.utils.space_ops.
center_of_mass
(points)¶ 获取点集的重心
返回点集points的重心
-
manimlib.utils.space_ops.
midpoint
(point1, point2)¶ 两点的中点
返回point1,point2的中点
-
manimlib.utils.space_ops.
line_intersection
(line1, line2)¶ 求两直线交点:
point=line_intersection(line1.get_start_and_end(), line2.get_start_and_end())
返回两直线交点
注意: 需要使用
get_start_and_end()
-
manimlib.utils.space_ops.
get_winding_number
(points)¶ 获取卷绕数(所有点一共绕过的角度)
返回卷绕数