Bezier¶
manimlib/utils/bezier.py
这个文件中主要实现了和贝塞尔曲线、插值有关的函数
-
manimlib.utils.bezier.
bezier
(points)¶
-
manimlib.utils.bezier.
partial_bezier_points
(points, a, b)¶ Given an array of points which define a bezier curve, and two numbers 0<=a<b<=1, return an array of the same size, which describes the portion of the original bezier curve on the interval [a, b].
This algorithm is pretty nifty, and pretty dense.
-
manimlib.utils.bezier.
interpolate
(start, end, alpha)¶
线性插值
-
manimlib.utils.bezier.
integer_interpolate
(start, end, alpha)¶ alpha is a float between 0 and 1. This returns an integer between start and end (inclusive) representing appropriate interpolation between them, along with a “residue” representing a new proportion between the returned integer and the next one of the list.
For example, if start=0, end=10, alpha=0.46, This would return (4, 0.6).
整数插值,返回两个数,第一个为插值结果(整数),第二个为和线性插值相差的小数部分
-
manimlib.utils.bezier.
mid
(start, end)¶
返回(start+end)/2,start和end可以是任意类型
-
manimlib.utils.bezier.
inverse_interpolate
(start, end, value)¶
由插值的结果value,返回alpha
-
manimlib.utils.bezier.
match_interpolate
(new_start, new_end, old_start, old_end, old_value)¶
-
manimlib.utils.bezier.
get_smooth_handle_points
(points)¶
给出一系列锚点points,返回经过points的平滑贝塞尔曲线的一系列控制点
-
manimlib.utils.bezier.
diag_to_matrix
(l_and_u, diag)¶ Converts array whose rows represent diagonal entries of a matrix into the matrix itself. See scipy.linalg.solve_banded
-
manimlib.utils.bezier.
is_closed
(points)¶
检查曲线是否闭合(首尾锚点重合)