Uit Dutch Scratch-Wiki
De meeste computers zijn van zichzelf niet erg kunstzinnig. Toch kun je met behulp van de computer de meest kunstige tekeningen maken. In Scratch hebben we hiervoor de "pen"; het plaatje hiernaast is daarmee getekend. En dat is niet eens moeilijk, want de computer doet het meeste werk voor je!
Het begin
Elke sprite in Scratch heeft een "pen" waarmee je kunt tekenen op het speelveld. Laten we beginnen met iets eenvoudigs. Trek een lijn, draai 90 graden, trek weer een lijn... Vier lijntjes en je hebt een vierkant.
wanneer groene vlag wordt aangeklikt verdwijn // de sprite zelf hoef ik niet te zien, die staat maar in de weg ga naar x:(0) y:(0) // begin in het midden van het speelveld richt naar (0 v) graden // onze eerste lijn zal recht omhoog gaan wis alles // als er al een tekening stond, haal die dan eerst weg pen neer // nu beginnen we te tekenen herhaal (4) keer neem (100) stappen // trek een lijn draai (90) graden naar rechts // pas de richting aan voor de volgende lijn einde
Dat was wel heel simpel. Maar nu veranderen we de draaihoek een klein beetje. In plaats van 90 graden, draaien we bij elke hoek 92 graden. Wat krijgen we dan?
herhaal (4) keer neem (100) stappen draai (92) graden naar rechts // een iets andere draaihoek! einde
Een misvormd vierkant, zul je zeggen. Daar is weinig moois aan. Maar als je door blijft tekenen, dan krijg je best een leuk patroon. Het enige wat we daarvoor hoeven te veranderen is het getal 4 in het herhaal-blok. We doen niet te zuinig; ik maak er 100 van!
herhaal (100) keer // lekker veel! neem (100) stappen draai (92) graden naar rechts einde
Met een eenvoudige cirkel kun je ook mooie patronen maken.
herhaal (25) keer herhaal (60) keer // de code in dit herhaalblok tekent één cirkel draai (6) graden naar rechts // 60 x 6 = 360 graden neem (6) stappen einde draai (15) graden naar links // verander de looprichting iets voor de volgende cirkel wordt getekend neem (4) stappen // schuif een klein beetje op einde
Experimenteer eens met de draairichting naar links. Met 40 of 60 krijg je bijvoorbeeld andere tekeningen.
Variabele lengte
Tot nu toe had elk lijnstuk dezelfde lengte. Door de lengte te laten variëren, kunnen we van ons misvormde vierkant een soort spiraal maken. We beginnen met een klein vierkantje, en maken hem dan steeds een beetje groter. Hiervoor hebben we wel een variabele nodig:
(lengte van de lijn)
Denk eraan dat je deze variabele eerst moet aanmaken voordat je hem kunt gebruiken in je programma.
maak [lengte van de lijn v] [1] // we beginnen met een heel kort lijntje herhaal (100) keer neem (lengte van de lijn) stappen // hier wordt de lijn getekend draai (92) graden naar rechts verander [lengte van de lijn v] met (1) // maak de lijn steeds een beetje langer einde
Wat dit programmaatje zo bijzonder maakt, is dat je met een piepkleine wijziging er weer een heel ander plaatje mee kunt tekenen. Je hoeft alleen maar het getal van de draaihoek te veranderen. De volgende twee tekeningen zijn gemaakt met een draaihoek van 45 en van 160 graden. Probeer zelf eens 91 of 98 of .... in te vullen. Dan zul je de computer veel verschillende pentekeningen laten maken.
Met cirkels kun je ook mooie plaatjes maken als je de cirkels steeds groter maakt door de lijnlengte stapsgewijs groter te maken.
maak [lengte van de lijn v] [1] // we beginnen weer met een kort lijntje herhaal (21) keer herhaal (36) keer // de code in dit herhaalblok tekent één cirkel draai (10) graden naar rechts // 36 x 10 = 360 graden neem (lengte van de lijn) stappen einde draai (15) graden naar rechts verander [lengte van de lijn v] met (1) // hierdoor wordt elke volgende cirkel groter
Met deze code maak je de cirkels steeds iets groter en draai je de tekenrichting van de pen iets naar rechts, voordat de computer de volgende cirkel tekent. Het resultaat is deze fraaie schelp:
Variabele draaihoek
In plaats van de lengte van de lijn variabel te maken, kunnen we ook de draaihoek laten variëren. Natuurlijk hebben we weer een variabele nodig.
(grootte van de draaihoek)
Je zult merken dat het met de programma's in dit hoofdstuk soms nodig is om wat langer door te tekenen om het plaatje helemaal compleet te krijgen. We hogen het getal in het herhaal-blok daarom nu op van 100 naar 800.
Het gevolg is wel dat het tekenen ook langer duurt. Ik raad je aan om de turbo-modus aan te zetten.
maak [grootte van de draaihoek v] [1] herhaal (800) keer neem (10) stappen // vaste lengte draai (grootte van de draaihoek) graden naar rechts // variabele draaihoek verander [grootte van de draaihoek v] met (1) // stapgrootte - leuk om aan te passen! einde
Hoe ontstaat zo'n krul? In het roze plaatje kun je het begin er van zien. Als de computer dit roze plaatje verder zou tekenen, gaat de pen op een gegeven moment hele kleine rondjes draaien. Dat komt doordat de draaihoek steeds groter wordt. Hierdoor blijft de pen een beetje op dezelfde plek "hangen" totdat de hoek groter dan 180 graden is geworden. 181 graden rechtsom is hetzelfde als 179 graden linksom, de pen zal in omgekeerde richting de krul weer langzaam verlaten.
Na 360 stappen is de pen precies weer terug op het beginpunt. Dat komt mooi uit, want een draaihoek van 360 graden (een keer helemaal om je as) doet hetzelfde als een draaihoek van nul graden. De pen begint gewoon weer opnieuw een krul te tekenen, maar nu precies de andere kant op. Als ook die krul klaar is, is de tekening compleet.
Ook in dit programmaatje kun je met de getallen spelen.
Het aanpassen van de lijnlengte (hier 10) zorgt er alleen maar voor dat de tekening groter of kleiner wordt.
Om de vorm te veranderen, kun je de stapgrootte aanpassen; dat is het getal in het oranje verander-blok.
De volgende twee tekeningen zijn gemaakt met een stapgrootte van 6 en van 5.
Ingewikkeldere formules
Complexere tekeningen kun je maken door een wat ingewikkeldere formule te gebruiken voor de draaihoek. We blijven wel een variabele gebruiken, en net als in de vorige hoofdstukken, hogen we deze variabele na elk lijntje met één op. Bij het eerste lijntje is de variabele dus 1, bij het tweede lijntje is hij 2, enzovoort. Het is dus eigenlijk gewoon een teller die bijhoudt bij het hoeveelste lijntje we zijn. Ik zal de variabele daarom gewoon "teller" noemen.
(teller)
Onze eerste formule hoeft niet heel ingewikkeld te zijn; we vermenigvuldigen de teller gewoon met zichzelf.
((teller) * (teller))
Je zult zien dat dit al een veel complexere tekening oplevert. Door de toenemende complexiteit heb je meer lijnstukjes nodig om de tekening af te maken. Dus zullen we het getal in het herhaalblok nog wat verder opvoeren. We gaan van 800 naar 3000!
maak [teller v] [1] // beginwaarde - leuk om aan te passen! herhaal (3000) keer neem (10) stappen draai ((teller) * (teller)) graden naar rechts // hier zie je de nieuwe formule verander [teller v] met (2) // stapgrootte - leuk om aan te passen! einde
Ook hier kun je de tekening aanpassen door een andere stapgrootte te kiezen. Bijvoorbeeld de waarde 8:
Daarnaast kun je ook de beginwaarde van de teller aanpassen. De volgende tekening heeft nog steeds stapgrootte 8, maar dan met beginwaarde 2.
Laten we de formule nog iets verder uitbreiden:
((teller) * ((teller) + (2)))
Het getal 2 in deze formule is willekeurig gekozen; in de volgende voorbeelden zien we ook andere waardes, die de tekening compleet kunnen veranderen.
Ook de lijnlengte is niet overal hetzelfde. Dit is gedaan om te zorgen dat de tekeningen beter passen binnen de grenzen van het speelveld.
maak [teller v] [1] herhaal (3000) keer neem (5) stappen draai ((teller) * ((teller) + (2))) graden naar rechts verander [teller v] met (1) einde
maak [teller v] [1] herhaal (3000) keer neem (15) stappen draai ((teller) * ((teller) + (12))) graden naar rechts verander [teller v] met (3) einde
maak [teller v] [1] herhaal (3000) keer neem (12) stappen draai ((teller) * ((teller) + (13))) graden naar rechts verander [teller v] met (3) einde
maak [teller v] [1] herhaal (3000) keer neem (8) stappen draai ((teller) * ((teller) + (13))) graden naar rechts verander [teller v] met (17) einde
Meer voorbeelden
De mogelijkheden zijn eindeloos. Kijk maar eens in de studio "15 Word Challenge"; je vindt daar honderden verschillende projecten die allemaal op deze manier werken.