예제 #1
0
    def __init__(self, svg, element, parent):
        SVGRenderableElement.__init__(self, svg, element, parent)
        self.svg = svg
        self.target = element.get(XLINK_NS + "href", None)
        self.x = parse_float(element.get('x', '0'))
        self.y = parse_float(element.get('y', '0'))

        self.transform = self.transform * Matrix.translation(self.x, self.y)

        #clip off "#"
        if self.target:
            self.target = self.target[1:]
예제 #2
0
    def _render_marker(self, a, b, marker, reverse=False):
        if marker.orient == 'auto':
            angle = (a - b).angle()
        else:
            angle = marker.orient

        if reverse:
            angle += math.pi

        sx = (marker.marker_width / marker.vb_w) * self.style.stroke_width
        sy = (marker.marker_height / marker.vb_h) * self.style.stroke_width

        rx = marker.ref_x
        ry = marker.ref_y

        with Matrix.transform(a.x, a.y, theta=angle):
            with Matrix.scale(sx, sy):
                with Matrix.translation(-rx, -ry):
                    marker.render()