X-Git-Url: http://git.tomasm.cz/imago.git/blobdiff_plain/bcca367769de787a06e04d957d49468975ac2616..b1b5232a3561e92a40a26ff586ee3496b080692c:/manual.py?ds=inline diff --git a/manual.py b/manual.py index 83e024e..55dfdd0 100644 --- a/manual.py +++ b/manual.py @@ -53,24 +53,12 @@ def find_lines(im_orig): corners.append(pygame.mouse.get_pos()) draw.point(corners[:-1], fill=color) if len(corners) == 4: - draw.line((corners[0], corners[1]), fill=color, - width=line_width) - draw.line((corners[1], corners[2]), fill=color, - width=line_width) - draw.line((corners[2], corners[3]), fill=color, - width=line_width) - draw.line((corners[3], corners[0]), fill=color, - width=line_width) - l_vert = lines(corners) + l_vert, l_hor = lines(corners) for l in l_vert: draw.line(l, fill=color, width=line_width) - l_hor = lines(corners[1:4] + [corners[0]]) for l in l_hor: draw.line(l, fill=color, width=line_width) - l_vert += [(corners[0], corners[3]), - (corners[1], corners[2])] - l_hor += [(corners[0], corners[1]), - (corners[2], corners[3])] + #TODO sort by distance l_vert.sort() l_hor.sort() for i in [3, 9, 15]: @@ -84,7 +72,13 @@ def find_lines(im_orig): clock.tick(15) def lines(corners): - return _lines(corners, 0) + cor_d = sorted([(corners[0][0] * c[1] - c[0] * corners[0][1], c) for c in + corners[1:]]) + corners = [corners[0]] + [c for _, c in cor_d] + return (_lines(corners, 0) + [(corners[0], corners[3]), + (corners[1], corners[2])], + _lines(corners[1:4] + [corners[0]], 0) + + [(corners[0], corners[1]), (corners[2], corners[3])]) def _lines(corners, n): if n == 0: