All pastes #357645 Raw Edit

Untitled

public text v1 · immutable
·published 2007-02-15 21:03 UTC
rendered paste body
    def get_pos(self, pos):
        def is_left_of(point, line):
            ax = point[0] - line[0][0]
            ay = point[1] - line[0][1]
            bx = line[1][0] - line[0][0]
            by = line[1][1] - line[0][1]
            if ax * by - bx * ay > 0: return True
            return False

        x, y = pos
        tw, th = self.pixelsize * 3 / 4, self.pixelsize
        tx, ty = x / tw, y / th
        ttx, tty = x - tx * tw, y - ty * th
        if tx % 2 == 0:
            if is_left_of((ttx, tty), ((0, th / 2), (tw / 3, 0))): tx -= 1; ty -= 1
            elif is_left_of((ttx, tty), ((tw / 3, th), (0, th / 2))): tx -= 1
        else:
            if tty < th / 2: 
                if is_left_of((ttx, tty), ((tw / 3, th / 2), (0, 0))):  tx -= 1
                else: ty -= 1 
            else:
                if is_left_of((ttx, tty), ((0, th), (tw / 3, th / 2))):  tx -= 1
        return tx, ty