Python中利用贝塞尔曲线画图
时间: 2023-03-20 19:03:22 浏览: 192
Python实现简易的交互式绘制贝塞尔曲线程序,可拼接,可拖动
可以使用Python中的Matplotlib库来绘制贝塞尔曲线。要绘制一条n阶贝塞尔曲线,可以使用Scipy库中的“bezier”函数来生成n+1个控制点,然后使用Matplotlib库中的“plot”函数来绘制曲线。以下是一个简单的Python代码示例:
```
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import comb
def bezier_curve(points, nTimes=1000):
nPoints = len(points)
xPoints = np.array([p[0] for p in points])
yPoints = np.array([p[1] for p in points])
t = np.linspace(0.0, 1.0, nTimes)
polynomial_array = np.array([comb(nPoints - 1, i) * (1 - t)**(nPoints - 1 - i) * t**i for i in range(nPoints)])
xvals = np.dot(xPoints, polynomial_array)
yvals = np.dot(yPoints, polynomial_array)
return xvals, yvals
# 示例点
points = np.array([(0, 0), (1, 3), (2, 3), (3, 0)])
x, y = bezier_curve(points, nTimes=1000)
# 绘制曲线
fig, ax = plt.subplots()
ax.plot(x, y)
ax.plot(points[:, 0], points[:, 1], 'ro')
ax.set_title('Bezier Curve')
plt.show()
```
这段代码将绘制一个由四个点构成的三次贝塞尔曲线,并将控制点用红色圆点标记出来。你可以根据需要修改点的坐标和阶数来绘制其他的贝塞尔曲线。
阅读全文