Пример #1
0
 def drawPolygon(self, points, mode):
     self.apply_graphics_state()
     if not points:
         return
     p = Path()
     p.move_to(points[0].x(), points[0].y())
     for point in points[1:]:
         p.line_to(point.x(), point.y())
     p.close()
     fill_rule = {self.OddEvenMode:'evenodd',
                 self.WindingMode:'winding'}.get(mode, 'evenodd')
     self.pdf.draw_path(p, stroke=True, fill_rule=fill_rule,
         fill=(mode in (self.OddEvenMode, self.WindingMode, self.ConvexMode)))
Пример #2
0
 def drawPoints(self, points):
     self.apply_graphics_state()
     p = Path()
     for point in points:
         p.move_to(point.x(), point.y())
         p.line_to(point.x(), point.y() + 0.001)
     self.pdf.draw_path(p, stroke=self.do_stroke, fill=False)
Пример #3
0
 def drawPolygon(self, points, mode):
     self.apply_graphics_state()
     if not points: return
     p = Path()
     p.move_to(points[0].x(), points[0].y())
     for point in points[1:]:
         p.line_to(point.x(), point.y())
     p.close()
     fill_rule = {self.OddEvenMode:'evenodd',
                 self.WindingMode:'winding'}.get(mode, 'evenodd')
     self.pdf.draw_path(p, stroke=True, fill_rule=fill_rule,
         fill=(mode in (self.OddEvenMode, self.WindingMode, self.ConvexMode)))
Пример #4
0
def convert_path(path):  # {{{
    p = Path()
    i = 0
    while i < path.elementCount():
        elem = path.elementAt(i)
        em = (elem.x, elem.y)
        i += 1
        if elem.isMoveTo():
            p.move_to(*em)
        elif elem.isLineTo():
            p.line_to(*em)
        elif elem.isCurveTo():
            added = False
            if path.elementCount() > i+1:
                c1, c2 = path.elementAt(i), path.elementAt(i+1)
                if (c1.type == path.CurveToDataElement and c2.type ==
                    path.CurveToDataElement):
                    i += 2
                    p.curve_to(em[0], em[1], c1.x, c1.y, c2.x, c2.y)
                    added = True
            if not added:
                raise ValueError('Invalid curve to operation')
    return p
Пример #5
0
 def convert_path(self, path):
     p = Path()
     i = 0
     while i < path.elementCount():
         elem = path.elementAt(i)
         em = (elem.x, elem.y)
         i += 1
         if elem.isMoveTo():
             p.move_to(*em)
         elif elem.isLineTo():
             p.line_to(*em)
         elif elem.isCurveTo():
             added = False
             if path.elementCount() > i + 1:
                 c1, c2 = path.elementAt(i), path.elementAt(i + 1)
                 if c1.type == path.CurveToDataElement and c2.type == path.CurveToDataElement:
                     i += 2
                     p.curve_to(em[0], em[1], c1.x, c1.y, c2.x, c2.y)
                     added = True
             if not added:
                 raise ValueError("Invalid curve to operation")
     return p