безье и matplotlib


person nkint    schedule 29.03.2011    source источник


Ответы (1)


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

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 степенями, просто измените функцию.

person highBandWidth    schedule 29.03.2011