NURBS曲线绘制代码示例
以下代码段展示了如何绘制NURBS曲线:
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import splprep
# 定义控制点
control_points = np.array([[0, 0], [1, 1], [2, 0], [3, 1]])
# 定义节点向量
knots = np.array([0, 0, 0, 1, 2, 3, 3, 3])
# 定义权重
weights = np.array([1, 1, 1, 1])
# 使用splprep函数生成NURBS曲线
tck, u = splprep(control_points.T, u=knots, k=3, s=0, weights=weights)
# 生成曲线上的点
u_new = np.linspace(0, 1, 100)
x, y = np.array(tck).T
# 绘制曲线
plt.plot(x, y, 'r-')
# 绘制控制点
plt.plot(control_points[:, 0], control_points[:, 1], 'bo')
# 显示图形
plt.show()
这段代码使用了Python的scipy库中的splprep函数来生成NURBS曲线。首先,需要定义控制点、节点向量和权重。然后,使用splprep函数生成曲线,并使用matplotlib库将其绘制出来。
这只是一个简单的例子,您可以根据实际需要修改控制点、节点向量和权重,以绘制出不同形状的NURBS曲线。
原文地址: https://www.cveoy.top/t/topic/loAO 著作权归作者所有。请勿转载和采集!