Riešenie 11. cvičenia


  1. Riešenie:

    def strom(kmen, koruna):
        t.lt(90)
        t.pensize(15)
        t.pencolor('brown')
        t.fd(kmen)
        t.pensize(40)
        t.pencolor('green')
        t.fd(koruna)
        t.pu()
        t.bk(kmen+koruna)
        t.pd()
        t.rt(90)
    

  1. Riešenie:

    def kvet():
        t.pencolor(f'#{random.randrange(256**3):06x}')
        t.pensize(7)
        for i in range(12):
            t.fd(15)
            t.bk(15)
            t.rt(30)
        t.dot(15, 'yellow')
    

  1. Riešenie:

    def balon(b, d):
        t.fd(d)
        t.dot(b, f'#{random.randrange(256**3):06x}')
        t.pu()
        t.bk(d)
        t.pd()
    
    def vela_balonov(n, b, d):
        t.lt(45)
        for i in range(n):
            balon(b, d)
            t.rt(90/(n-1))
        t.lt(n*90/(n-1))
    

  1. Riešenie:

    def hviezda(dlzka):
        for i in range(5):
            t.fd(dlzka)
            t.rt(144)
    
    def kresli_hviezdu(dlzka):
        t.pencolor('white')
        t.pensize(10)
        t.fillcolor('red')
        t.begin_fill()
        hviezda(dlzka)
        t.end_fill()
    

  1. Riešenie:

    def slnko(n, d, farba1, farba2):
        for i in range(n):
            t.pensize(20)
            t.pencolor(farba1)
            t.pu()
            t.fd(d)
            t.pd()
            t.fd(d)
            t.pencolor(farba2)
            t.pensize(10)
            t.fd(-d)
            t.pu()
            t.fd(-d)
            t.rt(360/n)
        t.dot(2*d-30, farba1)
        t.dot(2*d-40, farba2)
    

  1. Riešenie:

    def n_uholnik(n, d, otoc=1):
        for i in range(n):
            t.fd(d)
            #ciara1(d)
            #ciara2(d)
            t.rt(otoc * 360 / n)
    
    def dom(d):
        n_uholnik(4, d)
        n_uholnik(3, d, -1)
    
    def ciara1(d, k=11):
        for i in range(k):
            t.fd(d/k)
            if i % 2:
                t.pd()
            else:
                t.pu()
        t.pd()
    
    def ciara2(d):
        while d >= 5:
            tt.lt(60)
            tt.fd(5)
            tt.rt(120)
            tt.fd(5)
            tt.lt(60)
            d -= 5
        tt.fd(d)
    

  1. Riešenie:

    def stvorec(dlzka):
        t.fillcolor(f'#{random.randrange(256**3):06x}')
        t.begin_fill()
        for i in range(4):
            t.fd(dlzka)
            t.rt(90)
        t.end_fill()
    
    def stvorce(dlzka, krok):
        t.pu()
        while dlzka > 0:
            stvorec(dlzka)
            t.fd(krok/2)
            t.rt(90)
            t.fd(krok/2)
            t.lt(90)
            dlzka -= krok
    

  1. Riešenie:

    def stvorec(dlzka):
        t.fillcolor(f'#{random.randrange(256**3):06x}')
        t.begin_fill()
        for i in range(4):
            t.fd(dlzka)
            t.rt(90)
        t.end_fill()
    
    def veza(dlzka, krok):
        t.pu()
        while dlzka > 0:
            stvorec(dlzka)
            dlzka -= krok
            t.fd(krok/2)
            t.lt(90)
            t.fd(dlzka)
            t.rt(90)
    

  1. Riešenie:

    def stvorec(dlzka):
        t.fillcolor(f'#{random.randrange(256**3):06x}')
        t.begin_fill()
        for i in range(4):
            t.fd(dlzka)
            t.rt(90)
        t.end_fill()
    
    def mreza(n, m, dlzka, medzera):
        t.pu()
        for i in range(n):
            for i in range(m):
                stvorec(dlzka)
                t.fd(dlzka+medzera)
            t.bk(m * (dlzka+medzera))
            t.rt(90)
            t.fd(dlzka+medzera)
            t.lt(90)
    

  1. Riešenie:

    def domcek(d):
        for i in range(4):
            t.fd(d)
            t.lt(90)
        t.lt(45)
        d2 = d * 2**0.5
        t.fd(d2)
        t.lt(90)
        t.fd(d2/2)
        t.lt(90)
        t.fd(d2/2)
        t.lt(90)
        t.fd(d2)
        t.lt(45)
    

  1. Riešenie:

    def kocka(d):
        t.fillcolor(f'#{random.randrange(256**3):06x}')
        t.begin_fill()
        for i in range(4):
            t.fd(d)
            t.rt(90)
        t.end_fill()
        t.fillcolor(f'#{random.randrange(256**3):06x}')
        t.begin_fill()
        t.lt(45)
        for i in range(2):
            t.fd(d/2)
            t.rt(45)
            t.fd(d)
            t.rt(135)
        t.end_fill()
        t.fillcolor(f'#{random.randrange(256**3):06x}')
        t.begin_fill()
        t.rt(45)
        t.fd(d)
        t.lt(45)
        for i in range(2):
            t.fd(d/2)
            t.rt(135)
            t.fd(d)
            t.rt(45)
        t.end_fill()
        t.rt(45)
        t.fd(-d)
    

  1. Riešenie:

    def vlajka(zrd, dlzka, sirka):
        t.pensize(3)
        t.fd(zrd)
        t.fillcolor(f'#{random.randrange(256**3):06x}')
        t.begin_fill()
        for i in 1, 2:
            t.rt(90)
            t.fd(dlzka)
            t.rt(90)
            t.fd(sirka)
        t.end_fill()
        t.fd(-zrd)
    

  1. Riešenie:

    def vlajka(tu, zrd, dlzka, sirka):
        tu.pensize(3)
        tu.fd(zrd)
        tu.fillcolor(f'#{random.randrange(256**3):06x}')
        tu.begin_fill()
        for i in 1, 2:
            tu.rt(90)
            tu.fd(dlzka)
            tu.rt(90)
            tu.fd(sirka)
        tu.end_fill()
        tu.fd(-zrd)
    
    n = 10
    zoz = []
    for i in range(n):
        t = turtle.Turtle()
        t.lt(360/n*i)
        zoz.append(t)
    
    for i in range(len(zoz)):
        vlajka(zoz[i], 80 + 10*i, 60, 40)
    

  1. Riešenie:

    def kruznica(r):
        d = 3.14159*r/18
        t.pu()
        t.fd(r)
        t.rt(90)
        t.fd(-d/2)
        t.pd()
        for i in range(36):
            t.fd(d)
            t.rt(10)
        t.pu()
        t.fd(d/2)
        t.lt(90)
        t.fd(-r)
        t.pd()
    

  1. Riešenie:

    def prechadzka(n):
        t.pu()
        for i in range(n):
            t.seth(random.randint(0, 359))
            t.fd(20)
            if t.distance(0, 0) > 70:
                t.bk(20)
            elif t.distance(0, 0) > 50:
                t.dot(5, 'red')
            else:
                t.dot(5, 'blue')