Example #1
0
def _lowerlimit_symbol(c, x_pt, y_pt, size_pt, attrs):
    c.draw(
        path.path(path.moveto_pt(x_pt - 0.5 * size_pt, y_pt),
                  path.lineto_pt(x_pt + 0.5 * size_pt, y_pt)), attrs)
    c.draw(
        path.path(path.moveto_pt(x_pt, y_pt),
                  path.lineto_pt(x_pt, y_pt + 2.0 * size_pt)),
        attrs + [dcfpyx.deco.earrow(size=size_pt * dcfpyx.unit.v_pt)])
Example #2
0
 def paint(self, canvas, data, axis, axispos):
     if self.breaklinesattrs is not None:
         breaklinesdist_pt = unit.topt(self.breaklinesdist)
         breaklineslength_pt = unit.topt(self.breaklineslength)
         breaklinesextent_pt = (0.5*breaklinesdist_pt*math.fabs(self.cos) +
                                0.5*breaklineslength_pt*math.fabs(self.sin))
         if canvas.extent_pt < breaklinesextent_pt:
             canvas.extent_pt = breaklinesextent_pt
         for v in [data.subaxes[name].vminover for name in data.names[1:]]:
             # use a tangent of the basepath (this is independent of the tickdirection)
             p = axispos.vbasepath(v, None).normpath()
             breakline = p.tangent(0, length=self.breaklineslength)
             widthline = p.tangent(0, length=self.breaklinesdist).transformed(trafomodule.rotate(self.breaklinesangle+90, *breakline.atbegin()))
             # XXX Uiiii
             tocenter = map(lambda x: 0.5*(x[0]-x[1]), zip(breakline.atbegin(), breakline.atend()))
             towidth = map(lambda x: 0.5*(x[0]-x[1]), zip(widthline.atbegin(), widthline.atend()))
             breakline = breakline.transformed(trafomodule.translate(*tocenter).rotated(self.breaklinesangle, *breakline.atbegin()))
             breakline1 = breakline.transformed(trafomodule.translate(*towidth))
             breakline2 = breakline.transformed(trafomodule.translate(-towidth[0], -towidth[1]))
             canvas.fill(path.path(path.moveto_pt(*breakline1.atbegin_pt()),
                               path.lineto_pt(*breakline1.atend_pt()),
                               path.lineto_pt(*breakline2.atend_pt()),
                               path.lineto_pt(*breakline2.atbegin_pt()),
                               path.closepath()), [color.gray.white])
             canvas.stroke(breakline1, self.defaultbreaklinesattrs + self.breaklinesattrs)
             canvas.stroke(breakline2, self.defaultbreaklinesattrs + self.breaklinesattrs)
     _title.paint(self, canvas, data, axis, axispos)
Example #3
0
 def getglyphpathwxwy_pt(self, glyph, size):
     m = self.fontmatrixpattern.search(self.data1)
     m11, m12, m21, m22, v1, v2 = map(float, m.groups()[:6])
     t = trafo.trafo_pt(matrix=((m11, m12), (m21, m22)), vector=(v1, v2)).scaled(size)
     context = T1context(self)
     p = path()
     self.updateglyphpath(glyph, p, t, context)
     wx, wy = t.apply_pt(context.wx, context.wy)
     return p, wx, wy
Example #4
0
 def getglyphpathwxwy_pt(self, glyph, size):
     m = self.fontmatrixpattern.search(self.data1)
     m11, m12, m21, m22, v1, v2 = map(float, m.groups()[:6])
     t = trafo.trafo_pt(matrix=((m11, m12), (m21, m22)),
                        vector=(v1, v2)).scaled(size)
     context = T1context(self)
     p = path()
     self.updateglyphpath(glyph, p, t, context)
     wx, wy = t.apply_pt(context.wx, context.wy)
     return p, wx, wy
Example #5
0
 def zvgridpath(self, vz):
     return path.path(path.moveto_pt(*self.vpos_pt(0, 0, vz)),
                      path.lineto_pt(*self.vpos_pt(1, 0, vz)),
                      path.lineto_pt(*self.vpos_pt(1, 1, vz)),
                      path.lineto_pt(*self.vpos_pt(0, 1, vz)),
                      path.closepath())
Example #6
0
 def yvgridpath(self, vy):
     return path.path(path.moveto_pt(*self.vpos_pt(0, vy, 0)),
                      path.lineto_pt(*self.vpos_pt(1, vy, 0)),
                      path.lineto_pt(*self.vpos_pt(1, vy, 1)),
                      path.lineto_pt(*self.vpos_pt(0, vy, 1)),
                      path.closepath())
Example #7
0
 def xvgridpath(self, vx):
     return path.path(path.moveto_pt(*self.vpos_pt(vx, 0, 0)),
                      path.lineto_pt(*self.vpos_pt(vx, 1, 0)),
                      path.lineto_pt(*self.vpos_pt(vx, 1, 1)),
                      path.lineto_pt(*self.vpos_pt(vx, 0, 1)),
                      path.closepath())
Example #8
0
 def zvgridpath(self, vz):
     return path.path(path.moveto_pt(*self.vpos_pt(0, 0, vz)),
                      path.lineto_pt(*self.vpos_pt(1, 0, vz)),
                      path.lineto_pt(*self.vpos_pt(1, 1, vz)),
                      path.lineto_pt(*self.vpos_pt(0, 1, vz)),
                      path.closepath())
Example #9
0
 def yvgridpath(self, vy):
     return path.path(path.moveto_pt(*self.vpos_pt(0, vy, 0)),
                      path.lineto_pt(*self.vpos_pt(1, vy, 0)),
                      path.lineto_pt(*self.vpos_pt(1, vy, 1)),
                      path.lineto_pt(*self.vpos_pt(0, vy, 1)),
                      path.closepath())
Example #10
0
 def xvgridpath(self, vx):
     return path.path(path.moveto_pt(*self.vpos_pt(vx, 0, 0)),
                      path.lineto_pt(*self.vpos_pt(vx, 1, 0)),
                      path.lineto_pt(*self.vpos_pt(vx, 1, 1)),
                      path.lineto_pt(*self.vpos_pt(vx, 0, 1)),
                      path.closepath())
Example #11
0
def _lowerlimit_symbol(c, x_pt, y_pt, size_pt, attrs):
    c.draw(path.path(path.moveto_pt(x_pt-0.5*size_pt, y_pt             ),
                     path.lineto_pt(x_pt+0.5*size_pt, y_pt             )), attrs)
    c.draw(path.path(path.moveto_pt(x_pt            , y_pt             ),
                     path.lineto_pt(x_pt            , y_pt+2.0*size_pt )), attrs+[dcfpyx.deco.earrow(size=size_pt*dcfpyx.unit.v_pt)])