INNER CODE UNIT · Python

OutlinePen

varunsalian/debrify · dev/launch_animations/generate_recreations.py:29

class OutlinePen(BasePen):
    def __init__(self, glyphs=None, scale=1):
        super().__init__(glyphs)
        self.scale = scale
        self.paths = []
    def point(self, p): return [round(p[0]*self.scale, 4), round(-p[1]*self.scale, 4)]
    def _moveTo(self, p):
        self.v, self.ins, self.outs = [self.point(p)], [[0, 0]], [[0, 0]]
    def _lineTo(self, p):
        self.v.append(self.point(p)); self.ins.append([0, 0]); self.outs.append([0, 0])
    def _curveToOne(self, a, b, end):
        a, b, end = self.point(a), self.point(b), self.point(end)
        self.outs[-1] = [a[i]-self.v[-1][i] for i in (0, 1)]
        self.v.append(end); self.ins.append([b[i]-end[i] for i in (0, 1)]); self.outs.append([0, 0])
    def _qCurveToOne(self, control, end):
        start = self._getCurrentPoint()
        a = tuple(start[i]+(control[i]-start[i])*2/3 for i in (0, 1))
        b = tuple(end[i]+(control[i]-end[i])*2/3 for i in (0, 1))

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…