根据用户选定的控制顶点绘制三次B样条曲线代码
时间: 2024-12-10 12:34:25 浏览: 19
在计算机图形学中,绘制三次B样条曲线通常涉及到贝塞尔曲线(Bezier Curve),特别是用于插值和动画制作。以下是基于Python的matplotlib库,使用控制顶点(control points)来创建三次B样条的简单示例:
```python
import matplotlib.pyplot as plt
import numpy as np
# 定义控制顶点
ctrl_points = [(0, 0), (0.5, 0.5), (1, 1)]
# 设置节点数,这里是5个等间距的节点
num_nodes = 5
t = np.linspace(0, 1, num_nodes)
# 计算B样条曲线的各个点
points = [np.zeros((num_nodes, 2)) for _ in range(len(ctrl_points))]
for i, cp in enumerate(ctrl_points):
points[i] = np.array([np.power(t, j) * np.power(1 - t, 3 - j) for j in range(4)]) @ cp
# 绘制曲线
plt.plot(points[:, 0], points[:, 1])
plt.scatter(*zip(*ctrl_points), color='red') # 控制点标记
plt.xlabel('X')
plt.ylabel('Y')
plt.title('三次B样条曲线')
plt.grid(True)
plt.show()
阅读全文