X-Git-Url: http://git.tomasm.cz/imago.git/blobdiff_plain/a0ffea12425b22e87010c097a393e9b627eb0a29..145417a1698105ca84eeb57c650181f8777667e5:/linef.py?ds=inline diff --git a/linef.py b/linef.py index ebfdbea..f46d92c 100755 --- a/linef.py +++ b/linef.py @@ -3,7 +3,7 @@ """Go image recognition lines-finding module""" import sys -import math +from math import sin, cos, pi try: import Image, ImageDraw @@ -122,8 +122,15 @@ def combine(image1, image2): return on_both def line_from_angl_dist((angle, distance), size): - x1 = - size[0] / 2 - y1 = int(round((x1 * math.sin(angle) - distance) / math.cos(angle))) + size[1] / 2 - x2 = size[0] / 2 - y2 = int(round((x2 * math.sin(angle) - distance) / math.cos(angle))) + size[1] / 2 - return [(0, y1), (size[0] - 1, y2)] + if pi / 4 < angle < 3 * pi / 4: + y1 = - size[1] / 2 + x1 = int(round((y1 * cos(angle) + distance) / sin(angle))) + size[0] / 2 + y2 = size[1] / 2 + x2 = int(round((y2 * cos(angle) + distance) / sin(angle))) + size[0] / 2 + return [(x1, 0), (x2, size[1])] + else: + x1 = - size[0] / 2 + y1 = int(round((x1 * sin(angle) - distance) / cos(angle))) + size[1] / 2 + x2 = size[0] / 2 + y2 = int(round((x2 * sin(angle) - distance) / cos(angle))) + size[1] / 2 + return [(0, y1), (size[0], y2)]