← Alle oefeningen
p5.jsJavaScripttekenen

Introductie: tekenen met Mondriaan

Leer met p5.js kleuren, rechthoeken en lijnen tekenen door een kunstwerk in de stijl van Mondriaan te maken.

Introductie: tekenen met Mondriaan

Teken dit meesterwerk op je computer! Het is gebaseerd op de schilderijen van de artiest Mondriaan.

Image

Voorbereiding

Ga naar p5.js: https://editor.p5js.org/

Zo zou je interface er uit moeten zien.

Image

De createCanvas(400, 400); code betekent dat een canvas (gebied waarin de code wordt uitgevoerd, waar wordt getekend) wordt gemaakt. De breedte en hoogte is 400 pixels (px).

Klik bovenaan op de Play knop om de code te starten. In de rechterkant (Preview) zie je nu dat het canvas getekend wordt.

Image

Image

Er wordt ook een achtergrondkleur ingesteld via background(220); Als je de waarde tussen de haakjes verandert, zul je zien dat de kleur verandert. Om bv. een achtergrond met een witte kleur in te stellen: background(255); De kleur kan een grijswaarde hebben van 0 tot 255. Probeer maar eens uit.

Image

In P5.js is de draw() functie zo gemaakt dat die altijd opnieuw herhaald wordt. Voor de background() is dit niet nodig, het canvas hoeft hier niet altijd opnieuw ingekleurd te worden. Verplaats de background() opdracht naar de setup() functie, onderaan. Zo wordt het canvas maar 1 keer ingekleurd.

Kleuren maken

Zonet hebben we een kleur gemaakt met 1 getal. In dat geval kan je enkel een kleur van wit tot zwart maken, van 0 tot 255, met grijswaardes ertussen in.

Image

Maar dit kan ook met 3 getallen i.p.v. 1.

Computers werken vaak met 3 getallen om 1 kleur samen te stellen. Deze getallen zijn dan waardes voor rood, groen en blauw. In het Engels Red, Green en Blue. Meestal wordt dit dan afgekort tot rgb.

Die kleuren worden dan gemengd en zo ontstaat een nieuwe kleur.

Elk van de drie kleuren kan een waarde hebben van 0 tot 255.

Image

De kleur voor een eerste rechthoek

Voeg toe onderaan in de setup() functie. We maken eerst een kleur die gebruikt zal worden om de rechthoek op te vullen, dit kan met de opdracht:

fill(r, g, b);

Gebruik bv. volgende waardes voor een rode kleur: fill(230, 20, 20);

Posities in P5.js

Het canvas in P5.js heeft een X en een Y as. Dus een horizontale en verticale as.

Image

Posities op het canvas kunnen dan bepaald worden met een getal voor x en y. Zowel x als y begint linksboven met 0.

x is positief naar rechts, y is positief naar onder.

bv. voor een canvas van 400 breed en 400 hoog:

Image

Teken een rechthoek

Een rechthoek tekenen kan met:

rect(x, y, b, h);

Deze code tekent een rechthoek waarvan de linkerbovenhoek begint op de positie x en y met een breedte b en hoogte h.

Voeg toe onderaan in de setup() functie.

Teken bv.:

rect(100, 0, 300, 300);

Deze code tekent een rechthoek waarvan de linkerbovenhoek begint op de positie x = 100 en y = 0 met een breedte van 300 en hoogte van 300.

function setup() {
	createCanvas(400, 400);
	background(220);

	// rode rechthoek rechtsboven
	fill(230, 20, 20);
	rect(100, 0, 300, 300);
}

function draw() {}

Image

Omlijning verwijderen

Rond de rode rechthoek is een fijn zwart lijntje te zien. We gaan instellen dat dit niet hoeft getekend worden via:

noStroke();

Plaats deze code vóór het tekenen van de rechthoek.

Image

Blauwe rechthoek tekenen

We willen links onderaan een blauwe rechthoek tekenen. Probeer zelf eerst eens voor je naar de oplossing kijkt.

Image

Image

Gele rechthoek tekenen

Hoe voeg je deze gele rechthoek toe?

Image

Image

Lijnen tekenen

We gaan zwarte lijnen toevoegen aan de tekening.

Lijnkleur

De kleur van een lijn kan je instellen met:

stroke(getal);

Om zwarte lijnen te tekenen dus:

stroke(0);

Dit moeten we nu onderaan in de setup() functie toevoegen. Weet je nog dat je daarstraks de noStroke(); gebruikt hebt? Om het lijntje weg te halen? Nu voegen we opnieuw een lijntje toe, maar dat zal enkel gebruikt worden voor de vormen die getekend worden na de opdracht stroke(0);.

Lijn tekenen

Om een lijn te tekenen kun je gebruik maken van:

line(x1, y1, x2, y2);

We definiëren dus 2 posities waartussen de lijn zal getekend worden. bv.

line(10, 50, 300, 100);

Image

Lijndikte

Om de lijn wat dikker te maken gebruiken we:

strokeWeight(getal);

Dit is het 'lijnGewicht'. Het getal geeft dan de dikte in pixels aan.

Probeer in je code vóór het tekenen van de lijn eens een dikte in te stellen: strokeWeight(12);

Image

Uiteinden van de lijn

De 2 uiteinden van de lijn zijn nu afgerond, die kunnen we recht maken via:

strokeCap(SQUARE);

Square betekent vierkant. En het moet in hoofdletter geschreven worden. Voeg het ook weer toe vóór het tekenen van de lijn.

Ok, nu weten we hoe we een lijn moeten tekenen. Probeer volgende lijnen eens te tekenen. Zie je dat sommige lijnen een andere dikte hebben?

Image

Image

Zin om zelf aan de slag te gaan? Hier zijn een paar voorbeelden of je kan je eigen creatieve tekening maken.

Image

Meer info vind je op: https://drive.google.com/file/d/1gf9aM-UU8UNAI8b68gZ1YQae15CLjpxQ/view?usp=drive_link