def pravilna(povezava): x0, y0, x1, y1 = povezava # preveri dolzino prekratka = (abs(x1-x0) + abs(y1-y0)) > 0 # preveri, da je vodoravna ali navpicna in ne diagonalna diagonalna = (x0 == x1) or (y0 == y1) return prekratka and diagonalna def pravilne(povezave): for i in povezave: if not pravilna(i): return False return True def urejena(povezava): x0, y0, x1, y1 = povezava if x1 < x0 or y1 < y0: return x1, y1, x0, y0 return povezava def na_povezavi(x, y, povezava): x0, y0, x1, y1 = urejena(povezava) return x0 <= x <= x1 and y0 <= y <= y1 def povezave_tocke(x, y, povezave): r = set() for i in povezave: if na_povezavi(x, y, i): r.add(urejena(i)) return r def generiraj_tuples_povezava(povezava): pov = [] z0 = None z1 = None x0, y0, x1, y1 = povezava if x0 == x1: z0 = y0 z1 = y1 else: z0 = x0 z1 = x1 for ipsilon in range(z0, z1 + 1): r = (x0, ipsilon) pov.append(r) return pov def secisce(povezava1, povezava2): if not pravilna(povezava1) and not pravilna(povezava2): return None povezava1 = urejena(povezava1) povezava2 = urejena(povezava2) pov1 = generiraj_tuples_povezava(urejena(povezava1)) pov2 = generiraj_tuples_povezava(urejena(povezava2)) print(povezava1) print(pov1) def main(): povezave = [ (11, 10, 13, 10), (2, 12, 8, 12), (6, 11, 6, 13), (0, 16, 10, 16), (3, 18, 3, 13), (7, 14, 3, 14), (9, 17, 9, 14), ] # 6 # print(pravilna((18, 5, 13, 5))) # print(pravilna((5, 18, 5, 13))) # print(pravilna((10, 18, 12, 4))) # print(pravilna((10, 18, 10, 18))) # na_povezavi(10, 19, (10, 22, 10, 20)) # print(povezave_tocke(3, 15, povezave)) print(secisce((10, 20, 10, 25), (8, 22, 18, 22))) # print(secisce((8, 20, 18, 20), (1, 25, 0, 25))) main()