import turtle """ Graafika demo. Joonisab ringi, kaks ristkülikikut ja hulknurga (n=8). Prindib pindala Kasutab funktsioone tee_rist ja tee_ring """ def tee_rist(kk, m, x, y, a, b, jv, tv = "", w = 1): """ Protseduur (funktsioon) tee_rist joonestab ristküliku. Parameetrid: kk - objekt kipkonn (joonistaja) m - mastaap: piksleid pikkuse ühikus x, y - alumine vasakpoolne serv a, b - laius ja kõrgus (pikselites) jv - joone värvus, tv - täitevärvus w - joone paksus, vaikimisi 1 piksel """ # asukoht ja mõõtmed pikselites x = m*x; y = m*y; am = m * a; bm = m * b # joonistamine kk.penup(); kk.setpos(x, y) kk.width(w); kk.pencolor(jv); kk.fillcolor(tv) kk.pendown(); kk.begin_fill() kk.setpos(x + am, y); kk.setpos(x + am, y + bm) kk.setpos(x, y + bm); kk.setpos(x, y) kk.end_fill() return a * b, 2*(a + b) # tagastab pindala ja ümbermõõdu def tee_ring(kk, m, x0, y0, r, jv, tv = "", w = 1, n = ""): """ Ring raariusega r kk - objekt kipkonn (joonistaja) x0, y0 - keskpunkt, m - mastaap jv - joone värvus, tv - täitevärvus w - joone paksus, vaikimisi 1 piksel n - hulknurga külgede arv """ x0 = m * x0; y0 = m * y0; rm = m * r kk.penup(); kk.goto(x0+rm, y0); kk.setheading(90) kk.pendown(); kk.pensize(w); kk.pencolor(jv); kk.fillcolor(tv) kk.begin_fill() if n == "": kk.circle(rm) else: kk.circle(rm, steps=n) kk.end_fill() # peaprotseduur aken = turtle.Screen() aken.bgcolor("lightblue") aken.setup(500, 400) # akna suurus pikselites juku = turtle.Turtle() # turtle seotakse muutujaga juku m = 50 # mastaap tee_ring(juku, m, 0, 0, 3.6, "red", "yellow", 3) tee_rist (juku, m, -3, 0, 6, 1, "black", "green", 2) S, P = tee_rist (juku, m, -2, -3, 4, 3, "blue", w = 3) tee_ring(juku, m, 0, 2, 1, "black", "orange", n = 8) juku.penup(); juku.goto(-0.7 * m, -2.8 * m); juku.pendown() juku.write("pindala = " + str(round(S, 2)), font=("Arial", 12)) juku.penup(); juku.goto(0, -1.5 * m) juku.shape("turtle"); juku.fillcolor("brown") aken.exitonclick()