Scratch

Piirtäminen Scratchissa

Koska Scratchissa ei ole piirtokomentoja, niin ainut tapa luoda kuvioita on liikuttaa hahmoa näyttämöllä. Kun liikkuessa kynä on alhaalla, niin samalla saadaan haluttu kuvio piirrettyä. Katsotaan esimerkin vuoksi kuinka tavallisimman kuviot: kolmio, suorakulmio ja ympyrä, saadaan aikaiseksi Scratchilla.

Kolmio

Kolmion piirtämiseen tarvitaan tietää kolmion nurkkapisteet koordinaatistossa. Kun käydään nämä nurkkapisteet läpi järjestyksessä, niin kynä piirtää samalla kolmion.




Vaihtoehtoinen tapa piirtää kolmio on edetä kolmion sivun verran eteenpäin ja kääntää etenemissuunta. Jos esimerkiksi piirretään tasasivuinen kolmio, niin etenemissuunta kääntyy 120°.


Ohjelma koodi olisi seuraava.



Koska Scratchista puuttuu kuvioiden piirtokomennot, kuvioiden värittäminen on hieman ongelmallista. Scratchissa lähdetäänkin ajatuksesta, että siinä ohjelmoidaan hahmoa. Kun muutetaan hahmon asustetta, niin silloin hahmon ulkonäkö muuttuu. Siis kolmio voisi olla piirretty hahmona, mutta se ei enää ole sitten ohjelmointia, vaan piirtämistä.

Jos haluaisimme värittää kolmion, niin itse asiassa ainut mahdollisuus kuvion värittämiseen on kynän kuljettaminen väritettävällä alueella, kunnes alue on kokonaan väritetty. Mitä isompi on pensselin koko, niin sitä nopeammin alue saadaan väritettyä.

Kun värität pensselin avulla kuviota, niin maalaa ensin kuvion keskelle tuleva alue ja vasta sitten maalaa kuvion reunat eri värillä. Alla oleva esimerkki havainnollistaa asiaa. Pensselin reitti pitäisi olla spiraalimainen, jotta alueeseen ei jää koloja.


Suorakulmio

Suorakulmio piirrettään ihan samalla idealla kuin kolmiokin: joko liikkumalla suorakulmion nurkkapisteissä tai sitten liikkumalla eteenpäin ja kääntämällä suuntaa 90°. Katsotaan esimerkiksi, kuinka neliö on piirretty.

Mikä tahansa muu monikulmio saadaan piirrettyä samalla idealla.

Ympyrä

Ympyrän voi piirtää Scratchissa siten, että aina kun liikutaan eteenpäin, muutetaan kulmaa yhdellä asteella. Kun näitä muutoksia on 360 kappaletta, olemme kiertäneet täyden ympyrän ja tulleet takaisin lähtöpisteeseen. Onko järkevää tehdä koodi, jossa on 360 komentoa? Ei, vaan nyt käytämme silmukkaa, joka löytyy Ohjaus-välilehdeltä.



Kun laitamme liikkumisen ja kääntymisen tämän silmukan sisälle, niin 360 liikkumista ja kääntymistä hoituu kolmella komennolla.



Kokonainen ohjelma näyttää tältä.


Jos toistoja on vähemmän kuin 360, silloin saamme piirrettyä ympyrän kaareen. Seuraavaksi kannattaa miettiä, kuinka ympyrän kokoa voisi muuttaa.

Eräs ratkaisu on muuttaa etenemää ja kulmaa silmukan sisällä. Mitä suurempi on kulman muutos, sitä vähemmän toistoja tarvitaan. Mitä suurempi on etenemä, sitä suurempi ympyrä piirretään.




Esimerkiksi näillä arvoilla saataisiin seuraavan näköinen ympyrä.



Tarkemmin katsottuna kuva ei ole täydellinen ympyrä vaan 36-kulmio. Olemme samalla keksineet, kuinka säännöllisiä monikulmioita voidaan piirtää. Muuttamalla arvoja silmukan sisällä voimme piirtää esimerkiksi säännöllisen kuusikulmion.



Tärkeää on huomata, että kun kerrot kulman toistojen määrällä, niin kertolaskusta on aina tultava 360 eli esimerkiksi tässä 60 · 6 = 360. Tässä ohjelmassa on vielä se ongelma, että ympyrän säteen arvoa, emme voi tarkasti määrätä.

Ympyrä halutulla säteen arvolla

Haluamme piirtää ympyrän, jonka säde on 100. Se onnistuu seuraavalla rakenteella.



Ohjelman idea on seuraava. Liikumme origosta ympyrän säteen (100) verran eteenpäin ja piirrämme pisteen, jonka jälkeen palaamme takaisin ympyrän keskipisteeseen liikkumalla taaksepäin. Ympyrän keskipisteessä teemme yhden asteen kulman muutoksen, jonka jälkeen liikumme uudestaan säteen verran eteenpäin ja piirrämme toisen pisteen. Kun näin jatketaan 360 kertaa, niin olemme kiertäneet täyden ympyrän. Ohjelma tulostaa seuraavaa.



Kokeile muuttaa lukujen 100 ja -100 tilalle muita arvoja, niin voit piirtää eri kokoisen ympyrän.

Ympyrä laskukaavojen avulla

Scratchilla voi piirtää ympyrän tarkasti, mutta siihen tarvitaan laskukaavoja. Ympyrän kehän koordinaatit ovat laskettavissa, kunhan tunnetaan ympyrän säde ja kulma. Nämä laskukaavat ovat:

x = säde·cos(kulma)
y = säde·sin(kulma)

Tässä yhteydessä kaavoja ei johdeta ja perustella, mutta voit käyttää näitä ohjelmoinnissa. Kun kulma kasvaa 0 asteesta 360 asteeseen, tällöin saadaan ympyrän kaikki kehäpisteet laskettua. Ennen kuin aloitat koodin rakentamisen, sinun tulee luoda Tieto-ryhmässä neljä muuttujaa: kulma, säde, x ja y. Muuttuja luodaan painamalla Tee muuttuja-painiketta. Tutustutaan muuttujiin seuraavassa kappaleessa tarkemmin.




Laskukaava rakennetaan seuraavasti.

  1. Nosta Tieto-ryhmästä komento: muuta muuttujan x arvoa 1:llä.
  2. Nosta Toiminnot-ryhmästä komento: kertolasku, valkeaan syöttökenttään.
  3. Nosta kertolaskun ensimmäiseen vasemmanpuoleiseen syöttökenttään Tieto-ryhmästä säde-muuttuja.
  4. Nosta Toiminnot-ryhmästä komento: neliöjuuri arvosta 9, valkeaan syöttökenttään. Muuta neliöjuuri-laskutoimitus arvoon: cos.
  5. Nosta valkeaan syöttökenttään Tieto-ryhmästä kulma-muuttuja. Nyt laskukaava on valmis.

Tämän jälkeen rakenna seuraavanlainen koodi Scratchissa. Tässä ympyrän säteen arvo on vaihdettavissa heti koodin alussa, joten voit piirtää tarkasti sellaisen ympyrän kuin haluat. Ympyrän keskipiste on origo eli piste (0,0).



Nyt ympyrä näyttää tältä.

Ellipsi

Kun edellisen tehtävän harjoitukseen lisätään kaksi erillistä sädettä, niin tällöin saamme aikaiseksi ellipsin. Sädettä a käytämme, kun laskemme x:n arvoja ja sädettä b käytämme, kun laskemme y:n arvoja.



Ohjelman suoritus näyttää tältä.