以下代码段展示了如何绘制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曲线。

NURBS曲线绘制代码示例

原文地址: https://www.cveoy.top/t/topic/loAO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录