diff --git a/Snippets/symfont.py b/Snippets/symfont.py index a0a42b7fd..b4f34d3f6 100755 --- a/Snippets/symfont.py +++ b/Snippets/symfont.py @@ -24,7 +24,7 @@ n = 3 # Max Bezier degree; 3 for cubic, 2 for quadratic t, x, y = sp.symbols('t x y', real=True) -P = tuple(sp.symbols('P[:%d][:2]' % (n+1), real=True)) +P = tuple(sp.symbols('p:%d[:2]' % (n+1), real=True)) P = tuple(P[2*i:2*(i+1)] for i in range(len(P) // 2)) # Cubic Bernstein basis functions @@ -57,7 +57,8 @@ class BezierFuncs(object): def __getitem__(self, i): if i not in self._bezfuncs: - self._bezfuncs[i] = sp.lambdify('P', green(self._symfunc, Bezier=BezierCurve[i])) + args = ['p%d'%d for d in range(i+1)] + self._bezfuncs[i] = sp.lambdify(args, green(self._symfunc, Bezier=BezierCurve[i])) return self._bezfuncs[i] _BezierFuncs = {} @@ -88,21 +89,21 @@ class GreenPen(BasePen): def _lineTo(self, p1): p0 = self._getCurrentPoint() - self.value += self._funcs[1]((p0,p1)) + self.value += self._funcs[1](p0,p1) def _qCurveToOne(self, p1, p2): p0 = self._getCurrentPoint() - self.value += self._funcs[2]((p0,p1,p2)) + self.value += self._funcs[2](p0,p1,p2) def _curveToOne(self, p1, p2, p3): p0 = self._getCurrentPoint() - self.value += self._funcs[3]((p0,p1,p2,p3)) + self.value += self._funcs[3](p0,p1,p2,p3) def _closePath(self): p0 = self._getCurrentPoint() if p0 != self.__startPoint: p1 = self.__startPoint - self.value += self._funcs[1]((p0,p1)) + self.value += self._funcs[1](p0,p1) #AreaPen = partial(GreenPen, func=1) Moment1XPen = partial(GreenPen, func=x)