Как можно нарисовать несколько кривых NURBS на одной фигуре? - PullRequest
0 голосов
/ 13 мая 2019

Я использую 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 голосов
/ 15 мая 2019

ОК, я решил эту проблему самостоятельно.Мне нужно только использовать контейнер 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()
...