如何在同一图形上绘制多条NURBS曲线?

时间:2019-05-13 01:36:20

标签: python matplotlib nurbs

我正在使用NURBS-python,有一个名为VisMPL的模块,该模块将NURBS模块与matplotlib封装在一起。在NURBS-python手册中,仅介绍了如何绘制每条曲线。但是我想在同一张图片上绘制几条曲线,以便可以比较近似的工作原理。代码如下。请帮忙。非常感谢!

在matplotlib中,有多种方法可以将一个图像添加到另一个图像,所以我猜对于VisMPL,也有一种方法,因为我都不是其中的一个,所以我不知道该如何入门。

from geomdl import BSpline
from geomdl import fitting
from geomdl.visualization import VisMPL

P=[[0, 0], [0, 1], [1, 1], [1, 0], [1, -1], [0, -1]]
Degree=3
CPN=5

c1=fitting.interpolate_curve(P, Degree)
c1.vis=VisMPL.VisCurve2D()
c1.render()
c2=fitting.approximate_curve(P, Degree, ctrlpts_size=CPN)
c2.vis=VisMPL.VisCurve2D()
c2.render()

请帮助您获取同一张图片上的两条曲线。谢谢。

1 个答案:

答案 0 :(得分:0)

好的,我自己解决了这个问题。我只需要使用给出的容器NURBS-Python来包含所有曲线并绘制它们。代码变成:

from geomdl import BSpline
from geomdl import fitting
from geomdl import multi
from geomdl.visualization import VisMPL

P=[[0, 0], [0, 1], [1, 1], [1, 0], [1, -1], [0, -1]]
Degree=3
CPN=5

c1=fitting.interpolate_curve(P, Degree)
c2=fitting.approximate_curve(P, Degree, ctrlpts_size=CPN)
c=multi.CurveContainer([c1, c2])

c.vis=VisMPL.VisCurve2D()
c.render()