Python Wand 中的 path_curve_to_quadratic_bezier() 函数
贝塞尔曲线是 Python 中内置的绘图函数。它用于根据给定的点在 Python 中绘制曲线。
二次贝塞尔曲线是一个 Python 函数,它通过顶点(控制点)绘制二次贝塞尔曲线的路径。二次贝塞尔曲线是一种参数曲线,它定义二维空间中的路径。此曲线由一个控制点和两个终点连接。
在可视化程序中,您可以使用此函数轻松构建和绘制。使用时间参数,您可以找到两个控制点并确定它们的位置。您可以通过这种方式构建敏感位置,并像曲线一样链接这些位置。借助此函数,我们可以轻松创建曲线和形状,而使用其他函数或方法很难或不可能创建这些曲线和形状。例如,借助二次贝塞尔函数,我们可以创建不同类型的图形和动画。
语法
此语法用于给定的示例 -
def quadratic_bezier(p0, p1, p2, t):
这里 p0、p1 和 p2 代表点,t 代表值。
示例 1
在此程序中,我们使用不同的点绘制曲线。
import matplotlib.pyplot as plt
import numpy as np
def quad_bez(p0, p1, p2, t):
t1 = np.linspace(0, 1, t)
x = (1 - t1) ** 2 * p0[0] + 2 * (1 - t1) * t1 * p1[0] + t1 ** 2 * p2[0]
y = (1 - t1) ** 2 * p0[1] + 2 * (1 - t1) * t1 * p1[1] + t1 ** 2 * p2[1]
return x, y
p0 = (0, 3) # beginning point
p1 = (4, 2) # Control point
p2 = (1, 8) # finishing point
t = 50
x, y = quad_bez(p0, p1, p2, t)
plt.plot(x, y)
plt.scatter([p0[0], p1[0], p2[0]], [p0[1], p1[1], p2[1]], c='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Bezier Curve')
plt.grid(True)
plt.show()
输出

在此代码中,我们使用 matplotlib 和 numpy 创建了一条贝塞尔曲线。我们已定义并用于绘制贝塞尔曲线上的点。起点、控制点和终点将显示在输出中。
示例 2
在此程序中,我们使用不同的点绘制曲线。
import matplotlib.pyplot as plt
import numpy as np
def quad_bez(p0, p1, p2, t):
t1 = np.linspace(0, 1, t)
x = (1 - t1) ** 2 * p0[0] + 2 * (1 - t1) * t1 * p1[0] + t1 ** 2 * p2[0]
y = (1 - t1) ** 2 * p0[1] + 2 * (1 - t1) * t1 * p1[1] + t1 ** 2 * p2[1]
return x, y
p0 = (2, 3) # beginning point
p1 = (6, 5) # Control point
p2 = (3, 2) # finishing point
t = 50
x, y = quad_bez(p0, p1, p2, t)
plt.plot(x, y)
plt.scatter([p0[0], p1[0], p2[0]], [p0[1], p1[1], p2[1]], c='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Bezier Curve')
plt.grid(True)
plt.show()
输出

在此代码中,我们使用 matplotlib 和 numpy 来生成贝塞尔曲线。使用我们使用的技术定义和绘制贝塞尔曲线上的起点。输出将显示起点、控制点和终点。
示例 3
在此程序中,我们使用不同的点绘制曲线。
import matplotlib.pyplot as plt
import numpy as np
def quad_bez(p0, p1, p2, t):
t1 = np.linspace(0, 1, t)
x = (1 - t1) ** 2 * p0[0] + 2 * (1 - t1) * t1 * p1[0] + t1 ** 2 * p2[0]
y = (1 - t1) ** 2 * p0[1] + 2 * (1 - t1) * t1 * p1[1] + t1 ** 2 * p2[1]
return x, y
p0 = (2, 3) # beginning point
p1 = (-2, 5) # Control point
p2 = (-3, 2) # finishing point
t = 80
x, y = quad_bez(p0, p1, p2, t)
plt.plot(x, y)
plt.scatter([p0[0], p1[0], p2[0]], [p0[1], p1[1], p2[1]], c='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Bezier Curve')
plt.grid(True)
plt.show()
输出

在此代码中,为了创建贝塞尔曲线,使用了 matplotlib 和 numpy。我们使用的方法定义并绘制贝塞尔曲线起点处的点。起始位置、控制点和终点都将显示在输出或图形中。
示例 4
在此程序中,我们使用不同的点绘制曲线。
import matplotlib.pyplot as plt
import numpy as np
def quad_bez(p0, p1, p2, t):
t1 = np.linspace(0, 1, t)
x = (1 - t1) ** 2 * p0[0] + 2 * (1 - t1) * t1 * p1[0] + t1 ** 2 * p2[0]
y = (1 - t1) ** 2 * p0[1] + 2 * (1 - t1) * t1 * p1[1] + t1 ** 2 * p2[1]
return x, y
p0 = (2, -5) # beginning point
p1 = (-2, 5) # Control point
p2 = (-3, 2) # finishing point
t = 50
x, y = quad_bez(p0, p1, p2, t)
plt.plot(x, y)
plt.scatter([p0[0], p1[0], p2[0]], [p0[1], p1[1], p2[1]], c='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Bezier Curve')
plt.grid(True)
plt.show()
输出

在此代码中,我们使用 matplotlib 和 numpy 构建了一条贝塞尔曲线。我们已经识别并利用了沿贝塞尔曲线的点。图像将显示起点、控制点和终点。
在上面的例子中,我们可以看到使用起点、控制点和终点创建的不同图形。
结论
总之,二次贝塞尔函数用于 Python Wand 创建平滑曲线。它需要三个点作为输入,并生成一条通过端点并受控制点位置影响的曲线。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

