コード例 #1
0
 def recompute(self):
     path = CreatePath()
     vertices = self.vertices
     radius = self.radius
     twopi = 2 * pi
     halfpi = pi / 2
     for i in range(vertices + 1):
         path.AppendLine(Polar(radius, (twopi * i) / vertices + halfpi),
                         ContAngle)
     path.ClosePath()
     path.Transform(self.trafo)
     if self.objects:
         self.objects[0].SetPaths((path,))
     else:
         self.set_objects([PolyBezier((path,))])
コード例 #2
0
def convert_outline(outline):
    paths = []
    trafo = Scale(0.001)
    for closed, sub in outline:
        if closed:
            sub.append(sub[0])
        path = CreatePath()
        paths.append(path)
        for item in sub:
            if len(item) == 2:
                apply(path.AppendLine, item)
            else:
                apply(path.AppendBezier, item)
        if closed:
            path.load_close()
    for path in paths:
        path.Transform(trafo)
    return tuple(paths)
コード例 #3
0
ファイル: lcdtext.py プロジェクト: veltsov/skencil-tk
    def recompute(self):
        paths = []
        trafo = self.trafo(Scale(self.size / float(char_scale)))
        width = 0
        for char in self.text:
            segs = char_segs.get(char)
            if segs is not None:
                for seg in segs:
                    path = CreatePath()
                    map(path.AppendLine, segments[seg])
                    path.ClosePath()
                    path.Translate(width, 0)
                    path.Transform(trafo)
                    paths.append(path)
                width = width + char_width

        paths = tuple(paths)
        if self.objects:
            self.objects[0].SetPaths(paths)
        else:
            self.set_objects([PolyBezier(paths)])