Esempio n. 1
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)
Esempio n. 2
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)])
Esempio n. 3
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())
Esempio n. 4
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())
Esempio n. 5
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())
Esempio n. 6
0
 def vgeodesic_el(self, vx1, vy1, vz1, vx2, vy2, vz2):
     """returns a geodesic path element between two points in graph coordinates"""
     return path.lineto_pt(*(self.vpos_pt(vx1, vy1, vz1) + self.vpos_pt(vx2, vy2, vz2)))
Esempio n. 7
0
 def vgeodesic_el(self, vx1, vy1, vx2, vy2):
     """returns a geodesic path element between two points in graph coordinates"""
     return path.lineto_pt(self.xpos_pt + vx2*self.width_pt,
                           self.ypos_pt + vy2*self.height_pt)
Esempio n. 8
0
 def updatepath(self, path, trafo, context):
     dy = context.t1stack.pop(0)
     path.append(lineto_pt(*trafo.apply_pt(context.x, context.y + dy)))
     context.y += dy
Esempio n. 9
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())
Esempio n. 10
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())
Esempio n. 11
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())
Esempio n. 12
0
 def vgeodesic_el(self, vx1, vy1, vz1, vx2, vy2, vz2):
     """returns a geodesic path element between two points in graph coordinates"""
     return path.lineto_pt(*(self.vpos_pt(vx1, vy1, vz1) +
                             self.vpos_pt(vx2, vy2, vz2)))
Esempio n. 13
0
 def vgeodesic_el(self, vx1, vy1, vx2, vy2):
     """returns a geodesic path element between two points in graph coordinates"""
     return path.lineto_pt(self.xpos_pt + vx2 * self.width_pt,
                           self.ypos_pt + vy2 * self.height_pt)
Esempio n. 14
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)])
Esempio n. 15
0
 def updatepath(self, path, trafo, context):
     dy = context.t1stack.pop(0)
     path.append(lineto_pt(*trafo.apply_pt(context.x, context.y + dy)))
     context.y += dy