Безье и матплотлиб - PullRequest
       7

Безье и матплотлиб

2 голосов
/ 30 марта 2011

Привет Я начинаю с http://matplotlib.sourceforge.net/users/path_tutorial.html. Я ищу функцию для получения всех точек Безье с фиксированной частотой дискретизации.

Я ищу что-то вроде этого:

interpolate(t, samplingrate)

где t - параметр кривой между 0 и 1, частота дискретизации - длина списка возвращаемых точек.

на странице руководства http://matplotlib.sourceforge.net/api/path_api.html?highlight=bezier и с некоторыми вызовами dir () я не нахожу ничего полезного

Помощь?

1 Ответ

3 голосов
/ 30 марта 2011

Объект Path не хранит точки вдоль кривой Безье, только минимальные необходимые параметры. Написание собственной функции не должно быть трудным. Как на счет этого, следуя выражениям wikipedia .

def quadBrezPoints(P0, P2, P1, nSamples):
    ans = numpy.zeros((nSamples,2))
    for i in xrange(nSamples):
        t = (i+0.0)/nSamples
        ans[i,0] = (1-t)**2 * P0[0] + 2*(1-t)*P1[0] + t**2 * P2[0]
        ans[i,1] = (1-t)**2 * P0[1] + 2*(1-t)*P1[1] + t**2 * P2[1]
return ans

Если вы хотите кривые Безье n-градуса, просто измените функцию.

...