'Draws the direction of the edge as an arrow on the rim of the receiving node.'

def draw_arrow(self, **kwargs):

    (x0, y0) = (self.node1.x, self.node1.y)
    (x1, y1) = (self.node2.x, self.node2.y)
    a = degrees(atan2((y1 - y0), (x1 - x0)))
    r = self.node2.radius
    d = sqrt((pow((x1 - x0), 2) + pow((y1 - y0), 2)))
    (x01, y01) = coordinates(x0, y0, ((d - r) - 1), a)
    r = max((kwargs.get('strokewidth', 1) * 3), 6)
    (dx1, dy1) = coordinates(x01, y01, (- r), (a - 20))
    (dx2, dy2) = coordinates(x01, y01, (- r), (a + 20))
    line(x01, y01, dx1, dy1, **kwargs)
    line(x01, y01, dx2, dy2, **kwargs)
    line(dx1, dy1, dx2, dy2, **kwargs)
