Uit Dutch Scratch-Wiki
De Pen wordt meestal gebruikt om tekeningen te maken die uit lijnen bestaan, maar je kunt de pen ook gebruiken om plaatjes op te bouwen uit puntjes (pixels). Hiermee kun je de meest fantastische patronen maken.
Puntjes zetten
Je kent wellicht deze truc om een enkel puntje op het scherm te zetten:
maak penkleur (66) // kies de kleur groen pen neer pen op
Zet er een herhaal-blok omheen, en je krijgt een rij van puntjes.
maak x (-240) // begin helemaal links herhaal (480) keer // werk van links naar rechts maak penkleur (66) pen neer pen op verander x met (1) // na elk puntje, een stapje naar rechts einde
Als je dit regel voor regel herhaalt, dan kun je zelfs het hele speelveld vullen.
wanneer groene vlag wordt aangeklikt pen op maak pendikte (2) // liever 2 dan 1; anders vallen er gaten tussen de puntjes maak y (180) // begin boven herhaal (360) keer // werk van boven naar beneden maak x (-240) // begin elke rij helemaal links herhaal (480) keer // werk van links naar rechts maak penkleur (66) pen neer pen op verander x met (1) // na elk puntje, een stapje naar rechts einde verander y met (-1) // na elke rij, een stapje naar beneden einde
Deze manier van tekenen noemen we wel een 'raster scan'; die term komt van de techniek die televisies en beeldschermen gebruiken om hun beeld op te bouwen. Het plaatje dat ermee gemaakt wordt, wordt een rasterafbeelding genoemd.
Turbo
Echt snel gaat zo'n raster scan niet in Scratch. Geen wonder, de computer moet even 480 x 360 = 172800 puntjes tekenen!
Zonder turbo gaat het zo langzaam dat je de lijntjes echt één voor één getekend ziet worden. Scratch doet dat expres, zodat beginnende programmeurs goed kunnen zien hoe het werkt. Maar zo duurt het een uur voor je plaatje klaar is!
Zorg daarom dat je de turbo-modus aanzet, dan is het in een paar seconden gebeurd.
Kleuren
Het leuke is dat je met zo'n 'raster scan' alles kunt tekenen wat je maar wilt; als je maar zorgt dat je steeds de juiste kleur op de juiste plaats neerzet. Tot nu toe hadden alle puntjes dezelfde kleur, namelijk groen.
maak penkleur (66)
Dat is wel saai. We vervangen het 'vaste' getal 66 door x-positie; die verandert namelijk terwijl er getekend wordt, waardoor je een plaatje krijgt met alle kleuren van de regenboog.
maak penkleur (x-positie)
Je merkt dat de kleuren als verticale strepen op het scherm staan. Dat komt doordat alle punten op een verticale lijn dezelfde x-positie hebben. Heb je liever horizontale strepen, dan vervang je x-positie door y-positie.
maak penkleur (y-positie)
Je kunt de twee ook bij elkaar optellen of van elkaar aftrekken; je krijgt dan diagonale strepen.
maak penkleur ((x-positie) + (y-positie))
En zo maak je gekleurde ringen:
maak penkleur (afstand tot [oorsprong v])
Hiervoor is het wel nodig dat je een tweede sprite hebt (die ik hier oorsprong heb genoemd). Deze tweede sprite mag je gewoon verbergen, alleen zijn positie is voor ons van belang. Voor het gemak zetten we hem precies in het midden van het speelveld:
wanneer groene vlag wordt aangeklikt ga naar x:(0) y:(0)
Wiskundige functies
Scratch beschikt over een hoop wiskundige functies. Zelfs als je niet precies begrijpt wat ze doen, dan kun je er toch een hoop leuks mee bereiken. Bijvoorbeeld sin (sinus); erg geschikt om golven mee te maken.
maak penkleur ((y-positie) + ((50) * ([sin v] van (x-positie))))
De functie atan (arctangens) is heel geschikt om een soort kleurenwiel mee te maken; je moet alleen wel even weten hoe.
maak penkleur (([atan v] van ((y-positie) / (x-positie))) / (0.9))
Dit is een goede basis voor meer leuks. Wat krijg je als je de 'ringen' optelt bij het kleurenwiel? Een spiraal!
maak penkleur ((([atan v] van ((y-positie) / (x-positie))) / (0.9)) + (afstand tot [oorsprong v]))
Ik zei toch dat sinus erg geschikt was om golven te maken? Laat 'm los op het tweede gedeelte van de spiraal-formule en je krijgt een gerimpeld kleurenwiel. Alsof je een steen in het water gooit!
maak penkleur ((([atan v] van ((y-positie) / (x-positie))) / (0.9)) + ((20) * ([sin v] van ((10) * (afstand tot [oorsprong v])))))
Of pas de sinus toe op het eerste deel van de spiraal-formule. Je krijgt dan gerimpelde ringen. Het lijkt wel een bloem!
maak penkleur (((20) * ([sin v] van ((10) * ([atan v] van ((y-positie) / (x-positie)))))) + (afstand tot [oorsprong v]))
Verander zelf de getallen die je in de formule ziet, en kijk wat het effect daarvan is.
Voorbeelden
De mogelijkheden zijn eindeloos. Kijk maar eens in de studio "1 Line Challenge"; je vindt daar honderden verschillende projecten die allemaal op deze manier werken.
Hieronder zie je een aantal voorbeelden uit deze studio met patronen waarvoor relatief eenvoudige formules gebruikt zijn. Een formule is de wiskundige naam voor de som die gemaakt wordt om de kleur van elke pixel te berekenen, bijvoorbeeld x-positie keer y-positie.
Op de pagina Raster-kunst tekenen (deel 2) vind je uitleg over hoe onderstaande raster-tekeningen zijn gemaakt.