import tkinter
import time

# 150, 150, 150, 150

w_width = 1500
w_height = 900

root = tkinter.Tk()

canvas = tkinter.Canvas(width=w_width,heigh=w_height)
canvas.pack()

meno = "h:/robotika/tretia_jazda.txt"

file = open(meno, "r")
numlines = 0
sizes = []
while True:
    content=file.readline()
    if not content:
        break
    if int(content) == -1:
        sizes.append(numlines)
        numlines = 0
    else:
        numlines += 1
file.close()

i = 0
px = -1
py = -1

file = open(meno, "r")


stena = 0
while stena < 4:

    if stena == 0:
        kx = 800 / (sizes[stena] - 1)
        ky = 1.5
        dx = 250
        dy = 700
        px = 250
        py = 700
    elif stena == 1:
        ky = 500 / (sizes[stena] - 1)
        kx = 1.5
        dx = 1050
        dy = 200
    elif stena == 2:
        kx = 800 / (sizes[stena] - 1)
        ky = 1.5
        dx = 250
        dy = 200
    else:
        ky = 500 / (sizes[stena] - 1)
        kx = 1.5
        dx = 250
        dy = 200
        
    riadok = 0
    while riadok < sizes[stena]:
        content=file.readline()

        dist = int(content)
        if (dist > 100):
            dist = 100
        if stena == 0:
            nx = dx + kx * riadok
            ny = dy + ky * dist
        elif stena == 1:
            nx = dx + kx * dist
            ny = dy + ky * (sizes[1] - riadok - 1)           
        elif stena == 2:
            nx = dx + kx * (sizes[2] - riadok - 1)
            ny = dy - ky * dist
        else:
            nx = dx - kx * dist
            ny = dy + ky * riadok            
        canvas.create_line(px, py, nx, py)
        canvas.create_line(nx, py, nx, ny)

        print("x=" + str(nx) + ", y=" + str(ny))
        px = nx
        py = ny
        i += 1
        riadok += 1
        root.update()
        time.sleep(0.1)

    if stena == 0:
        nx = dx + kx * riadok
        ny = dy        
    elif stena == 1:
        nx = dx
        ny = dy + ky * (sizes[1] - riadok)       
    elif stena == 2:
        nx = dx + kx * (sizes[2] - riadok)
        ny = dy
    else:
        nx = dx
        ny = dy + ky * riadok        
    canvas.create_line(px, py, nx, py)
    canvas.create_line(nx, py, nx, ny)
    px = nx
    py = ny
    stena += 1
    content=file.readline()

file.close()
