kolmapäev, 14. märts 2018

Kilpkonnagraafika


from turtle import *


Käsud:
forward(n) - liigu edasi (ingl. forward) n sammu võrra (ühe sammu pikkus on 1 piksel ehk üks täpike ekraanil);
back(n) - liigu tagasi (ingl. back) n sammu võrra;
left(d) - pööra vasakule (ingl. left) d kraadi;
right(d) - pööra paremale (ingl. right) d kraadi.
             * * * * *
fd(n) - võrdne käsuga forward(n);
bk(n) - võrdne käsuga back(n);
lt(d) - võrdne käsuga left(d);
rt(d) - võrdne käsuga right(d).
             * * * * *
color("red") - muudab jooned vastavat värvi
begin_fill() - sellest käsklusest alates värvib kujundi seest ära
end_fill() - selle käsklusega lõppeb värvimine
circle(100) - joonestab ringi raadiusega 100
pendown() | pd() | down() - pliiats alla
penup() | pu() | up() - pliiats üles
pensize() | width() - pliiatsi suurus
speed() - pliiatsi kiirus
color() - värv (joon, taust)
pencolor() - joone värv
fillcolor() - täitevärv
bgcolor() - taustavärv
goto(200, -300) - viib kilpkonna soovitud punkti
setup(900, 800) - tausta suurus
setpos(0,0) - kilpkonna positsioon
write("Tekst!", font = ("Soovitud fondi nimi", fondi suurus)) -kirjutab teksti soovitud fondiga ja fondi suurusega 

bgpic('failinimi.png') -taustapildi lisamine, pilt peab olema salvestatud samasse kausta

Pliiatsi seaded

Vaikimisi on meie nn kilpkonn noolekujuline.

Et muuta selle kuju, kasutame shape meetodit ning parameetritena on kasutada
“arrow”,
“turtle”,
“circle”,
“square”,
“triangle”
“classic”.

Võimalus on määrata ka kilpkonna kiirust 0-10.

Värvide loend
Vaata!

Näide 1. Ruudu joonistamine.

from turtle import *

forward(100) # Kilpkonn liigub edasi 100 pikslit
left(90) # Kilpkonn pöörab 90° vasakule
forward(100) # Kordame eelnevaid käske, sest ruudul on neli külge
left(90)
forward(100)
left(90)
forward(100)

exitonclick() # Saame akna sulgeda hiireklõpsuga

Näide 2. Ruut. Tsükkel.

from turtle import *

i = 0
while (i < 4):
    forward(150)
    left(90)
    i = i + 1

exitonclick()

Näide 3. Jaapani lipp.

from turtle import *

color("red") # Kilpkonn muutub punaseks
begin_fill() # Kilpkonn alustab ringi värvimist
circle(100) # Kilpkonn joonistab ringi raadiusega 100 pikslit
end_fill() # Kilpkonn lõpetab ringi värvimise

exitonclick()

Näide 4. Tsükkel. Juhuslikkus.

from turtle import *
from random import randint

i = 0
while (i < 6):
    pensize(randint(1, 10))
    pencolor("red")
    fillcolor("green")
    begin_fill()
    circle(randint(50, 150))
    end_fill()
    left(60)
    i = i + 1

exitonclick()

Näide 5. Funktsioon.

from turtle import *
def ruut(): # Defineerime funktsiooni nimega ruut
i = 0
while (i < 4):
    forward(100)
    left(90)
    i = i + 1
ruut() # Kutsume funktsiooni ruut välja. Kilpkonn joonistab  ruudu küljega 100 pikslit
right(45) # Pöörame paremale 45°
ruut() # Kutsume uuesti funktsiooni ruut välja

exitonclick()

Näide 6. Ruut. Funktsioon.

from turtle import *

def ruut(külg): # Defineerime funktsiooni nimega ruut, mille argumendiks on ruudu külje pikkus
    i = 0
    while (i < 4):
    forward(külg) # Siin kasutataksegi argumenti
    left(90)
    i = i + 1

ruut(50) # Kilpkonn joonistab ruudu küljega 50 pikslit
ruut(75) # Kilpkonn joonistab ruudu küljega 75 pikslit

exitonclick()

Näide 7. Mitu kilpkonna 1.

from turtle import *

kilp1 = Turtle()
kilp1.begin_fill()
kilp1.color("green")
kilp1.forward(100)
kilp1.end_fill()

kilp2 = Turtle()
kilp2.right(70)
kilp2.begin_fill()
kilp2.color("red")
kilp2.forward(100)
kilp2.end_fill()

kilp3 = Turtle()
kilp3.right(140)
kilp3.begin_fill()
kilp3.color("blue")
kilp3.forward(100)
kilp3.end_fill()

kilp4 = Turtle()
kilp4.right(210)
kilp4.begin_fill()
kilp4.color("grey")
kilp4.forward(100)
kilp4.end_fill()

exitonclick()

Näide 8. Mitu kilpkonna 2.

def kilbid(värv, pikkus):
    color(värv)
    forward(pikkus)
    backward(pikkus)
    left(70)

kilp1 = kilbid("green", 100)
kilp2 = kilbid("red", 100)
kilp3 = kilbid("blue", 100)
kilp4 = kilbid("yellow", 100)
kilp5 = kilbid("brown", 100)

exitonclick()

Näide 9. Juhuslikkus. Tekst.

from turtle import *
from random import randint

setup(900, 800) #tausta suurus
setpos(0,0) #kilpkonna positsioon
pencolor("#ff1a1a")
fillcolor("#ff00ff")
speed(20)
rt(90)
penup()
pendown()
rt(90)

i = 0
while i < 6:
    pensize(randint(2, 12)) #valib juhusliku pliiatsijoone jämeduse
    begin_fill()
    circle(randint(30, 150)) #valib juhusliku ringi raadiuse
    end_fill()
    lt(50)
    i = i + 1
penup()
goto(200, -300) #viib kilpkonna soovitud punkti
pendown()
write("Tore on!", font = ("Arial", 28)) #kirjutab teksti soovitud fondiga ja fondi suurusega

exitonclick()


Koordinaatteljed



Näide 10. Koordinaadid.

from turtle import *

goto(250, -250)

exitonclick()

Näide 11. Funktsioon - silm.

from turtle import *
def silm():
    pencolor("#000000")
    fillcolor("#FFFFFF")
    begin_fill()
    circle(25)
    end_fill()

penup()
goto(-30, 0)
pendown()
silm()
penup()
goto(30, 0)
pendown()
silm()
exitonclick()

Näide 12. Ovaal.

from turtle import *

shape("circle")
shapesize(10,16, 8) # arvud(ülevalt alla, vasakult paremale), max 30, saab lisada kolmanda arvu - joone paksus
fillcolor("pink")
pencolor("red")

exitonclick()

Näide 13. Kaar.

from turtle import * 


penup()
rt(90)
down()
circle(230, 90) # arvud - (kaare pikkus, pööre kraadides)

exitonclick()


Näide 14. Nägu.

from turtle import *
speed(1)
def kulm():
    pensize(4)
    circle(100, 90)
    
penup()
goto(-50, 100)
pendown()
lt(135)
kulm()

penup()
goto(150, 100)
pendown()
rt(90)
kulm()

def silm():
    pencolor("brown")
    fillcolor("blue")
    begin_fill()
    circle(50)
    end_fill()
    
penup()
goto(-160, 80)
pendown()
silm()

penup()
goto(50, 80)
pendown()
silm()
#suu
penup()
goto(-100, -100)
pendown()
lt(90)
pencolor("red")
pensize(7)
circle(130, 90)
#näo piirjoon
penup()
goto(-200, 200)
pendown()
pencolor("brown")
circle(300)

#nina
penup()
goto(-30, -10)
pendown()
rt(45)
shape("circle")
shapesize(3, 5, 3)
pencolor("pink")
begin_fill()
fillcolor("pink")
end_fill()

exitonclick()



Näide 15. Funktsioon (ristkülik, ovaal).


from turtle import *
setup(900, 700)
def ristkülik(külg1, külg2, külg3, külg4):
    fd(külg1)
    lt(90)
    fd(külg2)
    lt(90)
    fd(külg3)
    lt(90)
    fd(külg4)
    lt(90)

pencolor("red")
fillcolor("blue")
begin_fill()
ristkülik(100, 60, 100, 60)
end_fill()
goto(400, -320)
fd(20)

penup()
goto(300, 300)
pendown()

def ovaal(kõrgus, laius, pliiats):
    shape("circle")   
    shapesize(kõrgus, laius, pliiats)
    end_fill()

pencolor("blue")
fillcolor("yellow")
begin_fill()
ovaal(3, 6, 7)
end_fill()


exitonclick()


Näide 16. Aed.

from turtle import *
setup(900, 700)

penup()
goto(-400, -300)
pendown()
def aed():
    pencolor("#cccc00")
    fillcolor("#ffff1a")
    begin_fill()
    fd(40)
    lt(90)
    fd(100)
    lt(45)
    fd(30)
    lt(90)
    fd(30)
    lt(45)
    fd(100)
    end_fill()
penup()
fd(40)
pendown()
i=0
while (i < 8):
    aed()
    penup()
    lt(90)
    fd(60)
    pendown()

    i=i+1

2021.-2022. ÕPPEAASTA

 AppLab Kodeerimine JavaScriptis. Siin! Teeme video keskkonnas Bitable. Keskkond on siin. Juhend asub siin. Piskel Robin, "Taime elu&qu...