def updatenormpath(self, normpath, context): if normpath.normsubpaths[-1].epsilon is not None: normpath.append(normsubpath([normline_pt(self.x_pt, self.y_pt, self.x_pt, self.y_pt)], epsilon=normpath.normsubpaths[-1].epsilon)) else: normpath.append(normsubpath(epsilon=normpath.normsubpaths[-1].epsilon)) context.x_pt = context.subfirstx_pt = self.x_pt context.y_pt = context.subfirsty_pt = self.y_pt
def createnormpath(self, epsilon=_marker): if epsilon is _marker: return normpath([normsubpath([normline_pt(self.x_pt, self.y_pt, self.x_pt, self.y_pt)])]) elif epsilon is None: return normpath([normsubpath([pdfmoveto_pt(self.x_pt, self.y_pt, self.x_pt, self.y_pt)], epsilon=epsilon)]) else: return normpath([normsubpath([normline_pt(self.x_pt, self.y_pt, self.x_pt, self.y_pt)], epsilon=epsilon)])
def createnormpath(self, epsilon=_marker): if epsilon is _marker: return normpath([ normsubpath( _arctobezierpath(self.x_pt, self.y_pt, self.r_pt, self.angle2, self.angle1)) ]).reversed() else: return normpath([ normsubpath(_arctobezierpath(self.x_pt, self.y_pt, self.r_pt, self.angle2, self.angle1), epsilon=epsilon) ]).reversed()
def decorate(self, dp, texrunner): r_pt = 2 dp.ensurenormpath() for normsubpath in dp.path.normsubpaths: for i, normsubpathitem in enumerate(normsubpath.normsubpathitems): if isinstance(normsubpathitem, normpath.normcurve_pt): dp.ornaments.stroke( normpath.normpath( [normpath.normsubpath([normsubpathitem])]), [color.rgb.green]) else: dp.ornaments.stroke( normpath.normpath( [normpath.normsubpath([normsubpathitem])]), [color.rgb.blue]) for normsubpath in dp.path.normsubpaths: for i, normsubpathitem in enumerate(normsubpath.normsubpathitems): if isinstance(normsubpathitem, normpath.normcurve_pt): dp.ornaments.stroke( path.line_pt(normsubpathitem.x0_pt, normsubpathitem.y0_pt, normsubpathitem.x1_pt, normsubpathitem.y1_pt), [style.linestyle.dashed, color.rgb.red]) dp.ornaments.stroke( path.line_pt(normsubpathitem.x2_pt, normsubpathitem.y2_pt, normsubpathitem.x3_pt, normsubpathitem.y3_pt), [style.linestyle.dashed, color.rgb.red]) dp.ornaments.draw( path.circle_pt(normsubpathitem.x1_pt, normsubpathitem.y1_pt, r_pt), [filled([color.rgb.red])]) dp.ornaments.draw( path.circle_pt(normsubpathitem.x2_pt, normsubpathitem.y2_pt, r_pt), [filled([color.rgb.red])]) for normsubpath in dp.path.normsubpaths: for i, normsubpathitem in enumerate(normsubpath.normsubpathitems): if not i: x_pt, y_pt = normsubpathitem.atbegin_pt() dp.ornaments.draw(path.circle_pt(x_pt, y_pt, r_pt), [filled]) x_pt, y_pt = normsubpathitem.atend_pt() dp.ornaments.draw(path.circle_pt(x_pt, y_pt, r_pt), [filled])
def updatenormpath(self, normpath, context): if normpath.normsubpaths[-1].closed: normpath.append(normsubpath([normline_pt(context.x_pt, context.y_pt, *_arcpoint(self.x_pt, self.y_pt, self.r_pt, self.angle1))], epsilon=normpath.normsubpaths[-1].epsilon)) else: normpath.normsubpaths[-1].append(normline_pt(context.x_pt, context.y_pt, *_arcpoint(self.x_pt, self.y_pt, self.r_pt, self.angle1))) normpath.normsubpaths[-1].extend(_arctobezierpath(self.x_pt, self.y_pt, self.r_pt, self.angle1, self.angle2)) context.x_pt, context.y_pt = _arcpoint(self.x_pt, self.y_pt, self.r_pt, self.angle2)
def updatenormpath(self, normpath, context): if normpath.normsubpaths[-1].closed: normpath.append(normsubpath([normline_pt(context.x_pt, context.y_pt, *_arcpoint(self.x_pt, self.y_pt, self.r_pt, self.angle1))], epsilon=normpath.normsubpaths[-1].epsilon)) else: normpath.normsubpaths[-1].append(normline_pt(context.x_pt, context.y_pt, *_arcpoint(self.x_pt, self.y_pt, self.r_pt, self.angle1))) bpathitems = _arctobezierpath(self.x_pt, self.y_pt, self.r_pt, self.angle2, self.angle1) bpathitems.reverse() for bpathitem in bpathitems: normpath.normsubpaths[-1].append(bpathitem.reversed()) context.x_pt, context.y_pt = _arcpoint(self.x_pt, self.y_pt, self.r_pt, self.angle2)
def decorate(self, dp, texrunner): r_pt = 2 dp.ensurenormpath() for normsubpath in dp.path.normsubpaths: for i, normsubpathitem in enumerate(normsubpath.normsubpathitems): if isinstance(normsubpathitem, normpath.normcurve_pt): dp.ornaments.stroke(normpath.normpath([normpath.normsubpath([normsubpathitem])]), [color.rgb.green]) else: dp.ornaments.stroke(normpath.normpath([normpath.normsubpath([normsubpathitem])]), [color.rgb.blue]) for normsubpath in dp.path.normsubpaths: for i, normsubpathitem in enumerate(normsubpath.normsubpathitems): if isinstance(normsubpathitem, normpath.normcurve_pt): dp.ornaments.stroke(path.line_pt(normsubpathitem.x0_pt, normsubpathitem.y0_pt, normsubpathitem.x1_pt, normsubpathitem.y1_pt), [style.linestyle.dashed, color.rgb.red]) dp.ornaments.stroke(path.line_pt(normsubpathitem.x2_pt, normsubpathitem.y2_pt, normsubpathitem.x3_pt, normsubpathitem.y3_pt), [style.linestyle.dashed, color.rgb.red]) dp.ornaments.draw(path.circle_pt(normsubpathitem.x1_pt, normsubpathitem.y1_pt, r_pt), [filled([color.rgb.red])]) dp.ornaments.draw(path.circle_pt(normsubpathitem.x2_pt, normsubpathitem.y2_pt, r_pt), [filled([color.rgb.red])]) for normsubpath in dp.path.normsubpaths: for i, normsubpathitem in enumerate(normsubpath.normsubpathitems): if not i: x_pt, y_pt = normsubpathitem.atbegin_pt() dp.ornaments.draw(path.circle_pt(x_pt, y_pt, r_pt), [filled]) x_pt, y_pt = normsubpathitem.atend_pt() dp.ornaments.draw(path.circle_pt(x_pt, y_pt, r_pt), [filled])
def createnormpath(self, epsilon=_marker): if epsilon is _marker: return normpath([normsubpath(_arctobezierpath(self.x_pt, self.y_pt, self.r_pt, self.angle2, self.angle1))]).reversed() else: return normpath([normsubpath(_arctobezierpath(self.x_pt, self.y_pt, self.r_pt, self.angle2, self.angle1), epsilon=epsilon)]).reversed()