In the paint activity's shape tool we were able to make only horizontal arrows, so now we have modified the arrow tool which will now make arrows in all directions. --- Desenho.py | 27 ++++++++++++++++++--------- 1 files changed, 18 insertions(+), 9 deletions(-)
v1->v2 :Removed the vertical-arrow tool and modified the arrow tool to enable drawing arrows in all directions. diff --git a/Desenho.py b/Desenho.py index 3be1910..5057a27 100644 --- a/Desenho.py +++ b/Desenho.py @@ -294,18 +294,27 @@ class Desenho: x = coords[0] - widget.oldx y = coords[1] - widget.oldy - points = [(widget.oldx, widget.oldy),\ - (widget.oldx + int(x / 6), widget.oldy + y), \ - (widget.oldx + int(x / 6), widget.oldy + int(y / 3)), \ - (widget.oldx + x, widget.oldy + int(y / 3)), \ - (widget.oldx + x, widget.oldy - int(y / 3)), \ - (widget.oldx + int(x / 6), widget.oldy - int(y / 3)),\ - (widget.oldx + int(x / 6), widget.oldy - y)] + A = math.atan2(y,x) + dA = 2*math.pi/2 + r = math.hypot(y,x) + m = math.sin(A) + p = [(widget.oldx,widget.oldy),\ + (widget.oldx+int(r*math.cos(A)),widget.oldy+int(r*math.sin(A))),\ + (widget.oldx+int(0.74*r*math.cos(A+dA/6)),\ + widget.oldy+int(0.74*r*math.sin(A+dA/6)))] + p.append((widget.oldx,widget.oldy)) + p.append((widget.oldx+int(0.74*r*math.cos(A+dA/6)),\ + widget.oldy+int(0.74*r*math.sin(A+dA/6)))) + p.append((widget.oldx+int(2*r*math.cos(A+dA/6+dA/20)),\ + widget.oldy+int(2*r*math.sin(A+dA/6+dA/20)))) + p.append((widget.oldx+int(2*r*math.cos(A+dA/6-dA/20+dA/6)),\ + widget.oldy+int(2*r*math.sin(A+dA/6-dA/20+dA/6)))) + p.append((widget.oldx+int(0.74*r*math.cos(A+dA/6+dA/6)),\ + widget.oldy+int(0.74*r*math.sin(A+dA/6+dA/6)))) + p.append((widget.oldx,widget.oldy)) + p.append((widget.oldx+int(0.74*r*math.cos(A+dA/6+dA/6)),\ + widget.oldy+int(0.74*r*math.sin(A+dA/6+dA/6)))) + p.append((widget.oldx+int(r*math.cos(A+dA/2)),\ + widget.oldy+int(r*math.sin(A+dA/2)))) pixmap.draw_drawable(widget.gc, widget.pixmap, 0, 0, 0, 0, width, height) + tp = tuple(p) if fill == True: - pixmap.draw_polygon(widget.gc, True, points) - pixmap.draw_polygon(widget.gc_line, False, points) + pixmap.draw_polygon(widget.gc, True, tp) + pixmap.draw_polygon(widget.gc_line, False, tp) widget.queue_draw() def parallelogram(self, widget, coords, temp, fill): -- 1.7.2.3 _______________________________________________ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel