# -*- coding: utf-8 -*-
"""Untitled84.ipynb

Automatically generated by Colab.

Original file is located at
    https://colab.research.google.com/drive/1RzCVBdIKGbbCaT1wzJii6fkbV_sAajsc
"""

def vytvor_zoznam_segmentov(zoznam):
    """
    Vstup:
        zoznam: zoznam kresliacich príkazov v tvare [uhol, vzdialenosť, podpríkaz1, podpríkaz2, ...],
                kde podpríkazy majú rovnakú rekurzívnu štruktúru.
    Výstup:
        Zoznam segmentov v tvare [[dĺžka, [x, y]], ...], kde [x, y] je stred každého segmentu.
    """
    vysledok = []
    zaciatok = turtle.position()
    turtle.right(zoznam[0])
    turtle.forward(zoznam[1])
    koniec = turtle.position()
    stred = [(zaciatok[0] + koniec[0]) / 2, (zaciatok[1] + koniec[1]) / 2]
    vysledok.append([zoznam[1], stred])
    for idx in range(2, len(zoznam)):
        vysledok.extend(vytvor_zoznam_segmentov(zoznam[idx]))
    turtle.forward(-zoznam[1])
    turtle.right(-zoznam[0])
    return vysledok


def vypocet_taziska(usecky):
    """
    Vstup:
        usecky: zoznam segmentov v tvare [[dĺžka, [x, y]], ...], kde dĺžka je "hmotnosť"
                segmentu a [x, y] je jeho stred (ťažisko úsečky).
    Výstup:
        Dvojica (tx, ty): súradnice výsledného ťažiska všetkých segmentov.
    """
    suradnice_x = [usecka[1][0] for usecka in usecky]
    suradnice_y = [usecka[1][1] for usecka in usecky]
    vahy = [usecka[0] for usecka in usecky]
    celkova_vaha = sum(vahy)
    tx = sum(x * vaha for x, vaha in zip(suradnice_x, vahy)) / celkova_vaha
    ty = sum(y * vaha for y, vaha in zip(suradnice_y, vahy)) / celkova_vaha
    return tx, ty


import turtle
turtle.left(90)
segmenty = vytvor_zoznam_segmentov([0, 100, [-45, 50], [45, 50, [-30, 25], [30, 25]], [30, 50]])
# segmenty = vytvor_zoznam_segmentov([0, 0, [45, 50], [-45, 50]])
# segmenty = vytvor_zoznam_segmentov([0, 100, [120, 100, [120, 100]]])
tazisko = vypocet_taziska(segmenty)