贝塞尔曲线是一种常用的数学曲线,可以用来描述平滑的曲线形状。下面是一个包含代码示例的解决方法,用于绘制贝塞尔曲线:
import numpy as np
import matplotlib.pyplot as plt
def bezier_curve(control_points, t):
n = len(control_points) - 1
result = np.zeros_like(control_points[0])
for i in range(n + 1):
result += comb(n, i) * (1 - t)**(n - i) * t**i * control_points[i]
return result
其中,control_points
是控制点的坐标数组,t
是参数,用于确定曲线上的点位置。
def comb(n, k):
return np.math.factorial(n) / (np.math.factorial(k) * np.math.factorial(n - k))
该函数用于计算组合数。
control_points = np.array([[0, 0], [1, 3], [3, 4], [5, 1]])
t_values = np.linspace(0, 1, 100)
curve_points = np.array([bezier_curve(control_points, t) for t in t_values])
plt.plot(curve_points[:, 0], curve_points[:, 1])
plt.scatter(control_points[:, 0], control_points[:, 1], color='red')
plt.show()
其中,plt.plot
用于绘制曲线,plt.scatter
用于绘制控制点。
通过运行以上代码,即可绘制出贝塞尔曲线,并在图上显示控制点。可以根据需要修改控制点的坐标、参数范围等来调整曲线形状。