Mooi lesmateriaal van Wouter Burger van het Stedelijk Gymnasium Haarlem. Een model in Coach en SIR model + corona. Grote dank!
Wanneer je geïnteresseerd bent in lesmateriaal, stuur me dan een mailtje.
Aanleiding
Gisteren ontving ik een mail van het steunpunt NLT. NLT is een relatief nieuw vak voor de bovenbouw HAVO en VWO. De letters staan voor Natuur, Leven en Technologie. Het is een zogeheten snijvlakvak, een vak waar de bètavakken biologie, natuurkunde, scheikunde, wiskunde en aardrijkskunde bij elkaar komen. Er worden onderwerpen behandeld die vaak bij de monovakken blijven liggen. Mijn school, De Populier in Den Haag maakt zich sterk voor de bètavakken en wij bieden dit vak dus ook aan.
 In dit vak proberen we ook een plek te reserveren voor de actualiteit. Als er eens nieuwe satelliet wordt gelanceerd of er is een vulkaanuitbarsting of het Higgsdeeltje is gevonden, dan is dit de plek om het daarover te hebben. Goed. Die mail dus. In die mail werd verteld dat er een module is die je goed zou kunnen gebruiken om het Corona-virus te bespreken. Doordat we zo hard bezig zijn dat vermaledijde afstandsonderwijs vorm te geven hadden we nog helemaal niet hierover gedacht. Maar toen ik mijn NLT-collega’s en de directie voorstelde om lesjes te maken over het Corona-virus, was iedereen meteen heel enthousiast! “Dat moeten we doen!” En zoals dat bij ons gaat, na 20 minuten (online) overleg waren we eruit. We doen allemaal waar we goed in zijn. Marten doet de biologie, Lindsey de scheikunde en ik doe de modellen.
In dit vak proberen we ook een plek te reserveren voor de actualiteit. Als er eens nieuwe satelliet wordt gelanceerd of er is een vulkaanuitbarsting of het Higgsdeeltje is gevonden, dan is dit de plek om het daarover te hebben. Goed. Die mail dus. In die mail werd verteld dat er een module is die je goed zou kunnen gebruiken om het Corona-virus te bespreken. Doordat we zo hard bezig zijn dat vermaledijde afstandsonderwijs vorm te geven hadden we nog helemaal niet hierover gedacht. Maar toen ik mijn NLT-collega’s en de directie voorstelde om lesjes te maken over het Corona-virus, was iedereen meteen heel enthousiast! “Dat moeten we doen!” En zoals dat bij ons gaat, na 20 minuten (online) overleg waren we eruit. We doen allemaal waar we goed in zijn. Marten doet de biologie, Lindsey de scheikunde en ik doe de modellen.
Modelleren
En dan ga je op zoek. Ik wil met mijn leerlingen gaan modelleren. Er zijn wel een paar voorwaarden:
- Leerlingen moeten thuis zelf aan de slag kunnen gaan. Modelleren wordt het practicum van deze “noodmodule”. Dus de software moet liefst gratis maar in ieder geval toegankelijk zijn.
- Het moet begrijpelijk zijn voor alle leerlingen. We doen dit voor alle leerlingen die nu nog NLT volgen: HAVO 4, VWO 4 en VWO 5.
- Het moet wel een beetje echt aanvoelen. Alleen exponentiële groei is niet genoeg. Liefst moet “flattening the curve” in het model aan te tonen zijn.
Eerst Google hulp vragen. Er zijn plekken waar de effecten van ingrijpen (en niet ingrijpen) prachtig wordt laten zien, zoals hier, in The Washington Post, met schitterende animaties, die het extreem helder laten zien. En deze Epidemic calculator is ook prachtig! Maar de onderliggende wiskunde kan ik daar niet helemaal uithalen. Dan maar even langs mijn slimme YouTubekanalen. De video’s van 3Blue1Brown (1 en 2) en de video van Numberphile. En die laatste bracht me op het spoor van een model, het zgn. SIR-model of in het Nederlands, het Ziektecompartimentenmodel. Eigenlijk kinderlijk eenvoudig:
Het model
Je begint met een aantal mensen N waarvan een klein deel geïnfecteerd is (I). De rest van het aantal mensen is dan Vatbaar (S, Susceptable). In het begin is er nog geen groep die genezen is (R Recovered) en de ziekte dus ook niet meer kan krijgen (ik weet het, dat is nog niet 100% zeker). Wat je daarna doet is stapjes nemen in de tijd. En elke keer als je zo’n stapje neemt, verandert het aantal geïnfecteerden I, het aantal genezen mensen R en dus ook het aantal vatbaren S.
Om te weten hoe deze veranderen, heb je een infectiefactor nodig; hoe hoger dit getal, hoe meer mensen geïnfecteerd raken. Je hebt ook een getal nodig dat vertelt hoe groot het percentage is van de geïnfecteerden dat gedurende de tijdstap geneest. In dit model staat “genezen, R” eigenlijk voor twee groepen: zij die daadwerkelijk genezen en zij die eraan sterven (n het Engels lossen ze dit op door voor R niet “Recovered” te zeggen, maar “Removed”, verwijderd uit de groep die gevaar loopt. Beide groepen zijn (best cru natuurlijk) niet meer vatbaar.
We hebben dus de volgende gegevens:
- het totaal aantal mensen in de bevolking N
- aantal vatbare mensen S
- aantal geïnfecteerde mensen I
- aantal genezen mensen R
- infectiefactor i
- geneesfactor g
- de tijd t. Elke keer als je een stapje neemt wordt t 1 groter
Als eerste bereken je het aantal geïnfecteerde mensen I op tijdstip t. Omdat te kunnen berekenen bereken je allereerst wat erbij komt. Dit hangt natuurlijk af van de infectiefactor i, het aantal mensen dat vatbaar is S en welk gedeelte van de bevolking geïnfecteerd is, de infectiegraad I/N Deze getallen vermenigvuldig je: extra geïnfecteerden= i * S(t-1) * I(t-1) / N. De t-1 verwijst naar de vorige dag. Je berekent de nieuwe dag op grond van de getallen van de vorige dag.
Er zijn ook geïnfecteerden die beter worden. Die gaan van dat getal af. Dat aantal is afhankelijk van de geneesfactor g en het aantal geïnfecteerden: minder geïnfecteerden=g*I(t-1).
De verandering van het totaal aantal geïnfecteerden per dag is dan dI=i*I(t-1)*S(t-1) – g*I(t-1)
Dan kunnen we dus het aantal geïnfecteerden op tijdstrip t berekenen:
I(t)=I(t-1) + dI
Het aantal genezen personen is vervolgens eenvoudig uit te rekenen. Daar komt bij:
dR=g*I(t-1), dat wat eraf ging bij het aantal geïnfecteerden. Dan wordt het aantal genezen personen op tijdstip t:
R(t)=R(t-1) + dR
Het aantal vatbaren S is nu zeer eenvoudig uit te rekenen. Het is namelijk het totaal aantal mensen – de geïnfecteerden – de herstelden. In een formule: S(t)=N – I(t) – R(t)
Op een rijtje:
dI=i*I(t-1)*S(t-1) – g*I(t-1)
dR=g*I(t-1)
I(t)=I(t-1) + dI
R(t)=R(t-1) + dR
S(t)=N – I(t) – R(t)
Overigens wordt vaak gesproken over de R0, het getal dat vertelt hoeveel mensen er aangestoken worden t.o.v. het aantal mensen dat beter wordt. Als dit groter dan 1 is, dan is dat niet goed, we moeten ervoor zorgen dat het kleiner dan 1 wordt. In dit model is R0 ook te vinden. Het is namelijk de verhouding van de infectiefactor en de geneesfactor: i/g. Vergelijk dit met de verhouding van moederneutronen en dochterneutronen bij kernsplijting in een kernreactor. Als die groter is dan 1, gaat de reactor harder (al snel een atoombom); als die 1 is, een is het vermogen contant en als deze kleiner is dan 1, dooft de kernreactor uit.
Ik heb later nog de mortaliteit toegevoegd. Het maakt voor het model niet veel uit. Wat je in feite doet is de groep “genezen” splitsen in een groep die echt genezen is en een groep die sterft. Ik heb er wel even over nagedacht maar ik vind dat als je een model maakt dat je moet proberen het zo nauwkeurig mogelijk te doen. Ook al is het model dan donkerder. Ik deel hier beide modellen. Kun je kiezen.
De verandering is dat er van de groep geïnfecteerden ook nog afgaat de groep die overlijdt:
dD= – m*I(t-1). Hierin is m ( (welke percentage sterft tijdens een tijdstap) de mortaliteit. We gebruiken D voor het aantal overledenen.
Het model met ook de groep overleden ziet er dan zo uit:
dI=i*I(t-1)*S(t-1) – g*I(t-1)
dR=g*I(t-1)
dD=-m*I(t-1)
I(t)=I(t-1) + dI
R(t)=R(t-1) + dR
D(t)=D(t-1) +dD
S(t)=N – I(t) – R(t)
Software
In de video van Numberphile doen ze dit in het gratis programma Geogebra. Een schitterend programma dat heel veel kan. Ik heb het echter zelf even geprobeerd en twee dingen zorgden ervoor dat ik het niet ga gebruiken. Ten eerste is er toch nog een hoop “abracadabra“. Wat gebeurt er precies? De tijdstappen zie je bijvoorbeeld niet. Bovendien kreeg ik het niet goed voor elkaar in het programma. Het heeft, een redelijk steile leercurve. En dat is niet handig.
 Ik overlegde even met mijn bètamakkers in het land en besloot eens te zien of ik het in Excel zou kunnen doen. Dat heeft een paar grote voordelen: alle leerlingen hebben er wel eens mee gewerkt, de mesten hebben het thuis op de computer staan (vanwege het feit dat we als school via het bestuur een licentie hebben) en het is heel makkelijk om te zetten naar andere spreadsheetprogramma’s waarvan er een aantal helemaal gratis en/of webbased zijn (Google Sheets bijvoorbeeld).
Ik overlegde even met mijn bètamakkers in het land en besloot eens te zien of ik het in Excel zou kunnen doen. Dat heeft een paar grote voordelen: alle leerlingen hebben er wel eens mee gewerkt, de mesten hebben het thuis op de computer staan (vanwege het feit dat we als school via het bestuur een licentie hebben) en het is heel makkelijk om te zetten naar andere spreadsheetprogramma’s waarvan er een aantal helemaal gratis en/of webbased zijn (Google Sheets bijvoorbeeld).
Excel en Google Sheets
Had ik dat maar meteen gedaan. Kinderlijk eenvoudig om het te maken en direct kwamen daar de gewenste curves uit! Flattening the curve is meteen zichtbaar als je de infectiefactor verkleint en ook het bijzondere effect dat als die factor heel laag is, dat dan niet iedereen wordt geïnfecteerd. Ik heb de Excel files ook direct in Google Sheets geïmporteerd waar alles precies zo werkte.

Modelleertaal
In het eindexamenprogramma natuurkunde is modelleren een onderdeel en dat kun je doen in Coach van CMA. Dat is een (prima) betaald programma dat niet alle scholen zullen hebben aangeschaft. Gelukkig is er ook een gratis alternatief, de webbased Modelleertaal van mijn onvolprezen makker Tom Kooij. Hierin heb ik dit beide modellen (met en zonder mortaliteit)  ook geladen en dat ging zo mogelijk nog gemakkelijker dan in Excel. Later heeft Tom dit model er apart ingezet en verbeterd. Je kunt in dit model ook de tijdspat veranderen. In de Excel-modellen heb ik dat weggelaten. Dit levert nl. moeilijkheden waar ik leerlingen niet mee lastig wil vallen. Het kan wel overigens.

Mitsen en maren
Dit model is natuurlijk slechts een model. Er is veel over te zeggen en wellicht ook wel wat aan te doen.
- Je zou het model kunnen wijzigen zodanig dat de infectiefactor kan veranderen gedurende de run. Dan kun je de effecten van maatregelen beter zien. In de software die we gebruiken is dat mogelijk. Vergt wel iets meer gebruikerslenigheid.
- Het zou wellicht handig zijn om wat te kunnen spelen met de tijd. Veel langer of kortere tijdstappen.
- Wellicht is het beter om aan de knop van R0 te draaien. Kan gemakkelijk wordt geregeld in de Excel-files.
- In de jongste video van 3Blue1Brown laat de auteur allemaal prachtige modellen zien waar hij willekeurige mensen door elkaar heen laat lopen en elkaar aansteken. Dat weet vermoedelijk betere voorspellingen, is beter te finetunen en te verbeteren. Dit is echter veel ingewikkelder, vergt programmeer-vaardigheden en valt buiten de scoop van onze lessen. Wel mooi om naar te kijken en zeer instructief. Het is leuk om eens na te denken of er geen fysiek spel mee te maken is die je in een klas kunt doen (als we weer in een lokaal mogen zitten).
Files
Vanzelfsprekend deel ik de Excel-files, de Google Sheets en de files voor de Modelleertaal. Voor collega’s die dit willen gebruiken in de lessen over het virus of voor anderen die wel eens aan de knoppen willen zitten. Als je er mee aan de slag gaat, er dingen aan verbetert (en daar reken ik op) of er anderszins opmerkingen over hebt, deel ze met mij, dan deel ik dat weer hier. Ik gaf hier zelf nog lessen mee maken. Die zal ik hier ook delen.
| Model | Beschrijving | Excel | Google Sheets | Modelleertaal | 
| 1 | Zonder overlijden | Model01 | Virus01 | Virus011 | 
| 2 | Met overlijden | Model02 | Virus02 | Virus02 | 
 1 Tom  heeft het model direct beschikbaar gemaakt! Als je een grafiek wil met alle interessante grootheden, dan moet je even klikken op Plot meerdere grafieken (klein linksonder). Dan kun je kiezen om de grafieken voor S,I en R aan te zetten.
1 Tom  heeft het model direct beschikbaar gemaakt! Als je een grafiek wil met alle interessante grootheden, dan moet je even klikken op Plot meerdere grafieken (klein linksonder). Dan kun je kiezen om de grafieken voor S,I en R aan te zetten.
Als laatste
En als een ding duidelijk is, is het dat een lagere infectiegraad, echt helpt. Dus, volg de richtlijnen van het RIVM en de regering, wees zelfs nog iets strenger en dan zal het altijd beter gaan. Stay safe!



 Een tijd geleden al (zo’n vijf jaar) maakte ik in de programmeertaal (ontworpen door en voor kunstenaars)
Een tijd geleden al (zo’n vijf jaar) maakte ik in de programmeertaal (ontworpen door en voor kunstenaars)  Ik maakte een goede afdruk die je hiernaast afgedrukt ziet, liggend op de vloer. Hij is 1,2×1,2 m groot. Nu te zien in mijn lokaal op De Populier. Ik schreef daar toen ook een blogpost over waar ik het beter uitleg dan hier. Als je dat wil lezen,
Ik maakte een goede afdruk die je hiernaast afgedrukt ziet, liggend op de vloer. Hij is 1,2×1,2 m groot. Nu te zien in mijn lokaal op De Populier. Ik schreef daar toen ook een blogpost over waar ik het beter uitleg dan hier. Als je dat wil lezen, Nu met een plotter tot onze beschikking bedacht ik me dat ik wel eens daar mee zou kunnen beginnen, met mijn “Binaire Tegeles” project. In die tijd heb ik wat uitstapjes gemaakt en een daarvan waren de “binaire elpees”. Je ziet er hier een paar rechts op een shirt getekend. Wat ik daar deed waren boven op elkaar, van buiten naar binnen, steeds kleinere cirkels maken. Zwart gevuld als het binaire getal een 1 is, en wit gevuld als Het een 0 is. Zo wordt elk binair getal een ander gevulde cirkel.
Nu met een plotter tot onze beschikking bedacht ik me dat ik wel eens daar mee zou kunnen beginnen, met mijn “Binaire Tegeles” project. In die tijd heb ik wat uitstapjes gemaakt en een daarvan waren de “binaire elpees”. Je ziet er hier een paar rechts op een shirt getekend. Wat ik daar deed waren boven op elkaar, van buiten naar binnen, steeds kleinere cirkels maken. Zwart gevuld als het binaire getal een 1 is, en wit gevuld als Het een 0 is. Zo wordt elk binair getal een ander gevulde cirkel. De pen die ik gebruikte, een gewone fineliner, was helemaal niet zo “fine”. Veel te dik voor wat ik wilde laten zien.
De pen die ik gebruikte, een gewone fineliner, was helemaal niet zo “fine”. Veel te dik voor wat ik wilde laten zien. Ik kocht betere pennen (zie hiernaast), beter papier en veranderde de code zodanig dat alleen de zwarte cirkels werden getekend (zie voor de uitleg hiernaast). Nu was de plot beduidend beter. Ik wilde de 212 versie maken. Dat levert echter 4096 cirkels op, 256×256 dus en dat was ook voor het ultradunne pennetje echt teveel van het goede op een A4-tje. De 210 versie, met 1024 cirkels dus, 32×32 was echter wel mooi tekenbaar.
Ik kocht betere pennen (zie hiernaast), beter papier en veranderde de code zodanig dat alleen de zwarte cirkels werden getekend (zie voor de uitleg hiernaast). Nu was de plot beduidend beter. Ik wilde de 212 versie maken. Dat levert echter 4096 cirkels op, 256×256 dus en dat was ook voor het ultradunne pennetje echt teveel van het goede op een A4-tje. De 210 versie, met 1024 cirkels dus, 32×32 was echter wel mooi tekenbaar.
 Binaire sterren. Vanuit het midden “spaken”. Beginnend op 12 uur en dan met de klok mee (processing wil op 3/9 uur beginnen en tegen de klok in). Degenen met de cirkeltjes aan het einde van een spaak is erg vrolijkmakend, zie het filmpje hierboven. Hiernaast zie je de  uurversie (212 met een cirkeltje eromheen) is mooi maar wel erg precies. Hier dus wel 4096 cirkeltjes met spaken. Hij deed er meer dan vier uur over om deze te maken.
Binaire sterren. Vanuit het midden “spaken”. Beginnend op 12 uur en dan met de klok mee (processing wil op 3/9 uur beginnen en tegen de klok in). Degenen met de cirkeltjes aan het einde van een spaak is erg vrolijkmakend, zie het filmpje hierboven. Hiernaast zie je de  uurversie (212 met een cirkeltje eromheen) is mooi maar wel erg precies. Hier dus wel 4096 cirkeltjes met spaken. Hij deed er meer dan vier uur over om deze te maken.



 De tweede representatie die ik probeerde was de streep-representatie.Een witte achtergrond en een zwart, horizontaal streepje als het een “0” is en een witte als het een “1” is.
De tweede representatie die ik probeerde was de streep-representatie.Een witte achtergrond en een zwart, horizontaal streepje als het een “0” is en een witte als het een “1” is.
 De derde representatie die ik maakte, werd wellicht het mooist (je weet dat van te voren niet, heb ik gemerkt). Bij deze representatie heb ik cirkels gemaakt. De binnenste cirkel is de rechterbit (least significant), de buitenste de linkerbit (most significant). Als die “0” is dan is die zwart en bij “1” weer wit.
De derde representatie die ik maakte, werd wellicht het mooist (je weet dat van te voren niet, heb ik gemerkt). Bij deze representatie heb ik cirkels gemaakt. De binnenste cirkel is de rechterbit (least significant), de buitenste de linkerbit (most significant). Als die “0” is dan is die zwart en bij “1” weer wit.
 Twaalftallig ( “It’s counting, Jim, but not as we know it!”, zie
Twaalftallig ( “It’s counting, Jim, but not as we know it!”, zie 







 Instructable (English): here!
Instructable (English): here! Eerst rekenen. En als je veel dezelfde dingen moet doen, slinger je Excel aan natuurlijk. Hoeveel rijstkorrels moeten er op elk vakje gaan liggen. Grappig genoeg loop je dan meteen tegen je eerste leermomentje aan: Excel is maar tot op 15 cijfers significant (check het plaatje hiernaast, na nummer 50 gaat het mis). Vermoedelijk is dit genoeg voor economische doeleinden waar Excel vooral voor gebruikt wordt maar voor mij onacceptabel natuurlijk. Gewone rekenmachines kunnen dit ook niet gemakkelijk, met de hand kan maar is best veel werk. Oplossing: Wolfram Alpha. Overigens staat helemaal onderaan deze tekst een tabel met mijn berekeningen. In
Eerst rekenen. En als je veel dezelfde dingen moet doen, slinger je Excel aan natuurlijk. Hoeveel rijstkorrels moeten er op elk vakje gaan liggen. Grappig genoeg loop je dan meteen tegen je eerste leermomentje aan: Excel is maar tot op 15 cijfers significant (check het plaatje hiernaast, na nummer 50 gaat het mis). Vermoedelijk is dit genoeg voor economische doeleinden waar Excel vooral voor gebruikt wordt maar voor mij onacceptabel natuurlijk. Gewone rekenmachines kunnen dit ook niet gemakkelijk, met de hand kan maar is best veel werk. Oplossing: Wolfram Alpha. Overigens staat helemaal onderaan deze tekst een tabel met mijn berekeningen. In  Daarna moest ik natuurlijk gaan bedenken hoe zwaar dit ging worden. Natuurkunde. Ik mat thuis een flink aantal rijstkorrels en zag dat de gemiddelde massa van een Surinaamse rijstkorrel die ik gebruikte 20 mg was. Makkelijk rekenen: 50 in een gram, 50.000 in een kg.
Daarna moest ik natuurlijk gaan bedenken hoe zwaar dit ging worden. Natuurkunde. Ik mat thuis een flink aantal rijstkorrels en zag dat de gemiddelde massa van een Surinaamse rijstkorrel die ik gebruikte 20 mg was. Makkelijk rekenen: 50 in een gram, 50.000 in een kg. Maar wat komt dan daarna? Gewoon lege vakjes is wat saai. Maar een buis van 329 meter hoog (vakje 26, nog niet op de helft dus) lukt natuurlijk niet. “Dat is hoger dan de Eiffeltoren!” Deze gedachte was ook meteen de oplossing. Miniaturen van hoge dingen. Zo hoog als de buizen zouden reiken als ik wél zou doorbouwen. Dus, op vakje 26 komt een miniatuur Eiffeltoren. En op andere vakjes andere hoge dingen. Dingen waar miniaturen van zijn of van te maken zijn.
Maar wat komt dan daarna? Gewoon lege vakjes is wat saai. Maar een buis van 329 meter hoog (vakje 26, nog niet op de helft dus) lukt natuurlijk niet. “Dat is hoger dan de Eiffeltoren!” Deze gedachte was ook meteen de oplossing. Miniaturen van hoge dingen. Zo hoog als de buizen zouden reiken als ik wél zou doorbouwen. Dus, op vakje 26 komt een miniatuur Eiffeltoren. En op andere vakjes andere hoge dingen. Dingen waar miniaturen van zijn of van te maken zijn. De Burj Kalifa (hoogste gebouw ter wereld), de Mount Everest natuurlijk en daarna het International Space Center. De maan, Mars, de zon en als laatste, heel toevallig maar bijna ontroerend toepasselijk, de Voyager. Bijna de laatste buis, de 62e,  met rijst zou zo hoog zijn als de afstand van de aarde tot het door mensen gemaakte object dat het verste staat van de aarde.
De Burj Kalifa (hoogste gebouw ter wereld), de Mount Everest natuurlijk en daarna het International Space Center. De maan, Mars, de zon en als laatste, heel toevallig maar bijna ontroerend toepasselijk, de Voyager. Bijna de laatste buis, de 62e,  met rijst zou zo hoog zijn als de afstand van de aarde tot het door mensen gemaakte object dat het verste staat van de aarde. Het hokje naast het hokje van 1,40 meter daar wilde ik ook graag wat op. Maar wat is 2,80 m. Uiteindelijk bedacht ik: een springende basketballer! Een Magic Johnson action figure, van E-bay is dat uiteindelijk geworden. Om het nog wat meer te verbeelden, heb ik ook wat ander, dunner buismateriaal gekocht waar rijst in kan.
Het hokje naast het hokje van 1,40 meter daar wilde ik ook graag wat op. Maar wat is 2,80 m. Uiteindelijk bedacht ik: een springende basketballer! Een Magic Johnson action figure, van E-bay is dat uiteindelijk geworden. Om het nog wat meer te verbeelden, heb ik ook wat ander, dunner buismateriaal gekocht waar rijst in kan.
 Twaalftallig ( “It’s counting, Jim, but not as we know it!”, zie
Twaalftallig ( “It’s counting, Jim, but not as we know it!”, zie  Je kunt dan dus op negen plekken een witte of zwarte vulling hebben. Dat betekent dat je dus 29 = 512 vierkantjes hebt. Ik wilde het graag in een vierkant plaatsen. Dat was even lastig: √(512)=22,63. Ik besloot het vierkant 23×23 te maken. Dat betekent dat ik 23×23-512=529-512=17 vierkantjes niet kon vullen.
Je kunt dan dus op negen plekken een witte of zwarte vulling hebben. Dat betekent dat je dus 29 = 512 vierkantjes hebt. Ik wilde het graag in een vierkant plaatsen. Dat was even lastig: √(512)=22,63. Ik besloot het vierkant 23×23 te maken. Dat betekent dat ik 23×23-512=529-512=17 vierkantjes niet kon vullen. Maar. 65.536 tegels maken. Als je er 1024 per avond maakt, ben je toch nog 64 dagen bezig! Dat moet dus anders. Gelukkig zijn binaire getallen de natuurlijke vrienden van programmeren! Dat moet dus kunnen. Nu was het alweer een tijdje geleden dat ik had geprogrammeerd en ik moest ook een programmeertaal vinden die grafisch werkt. Na een avondje zoeken en proberen, besloot ik te gaan werken met een programmeertaal waarmee ik in een ver verleden wel wat had gewerkt: PHP.
Maar. 65.536 tegels maken. Als je er 1024 per avond maakt, ben je toch nog 64 dagen bezig! Dat moet dus anders. Gelukkig zijn binaire getallen de natuurlijke vrienden van programmeren! Dat moet dus kunnen. Nu was het alweer een tijdje geleden dat ik had geprogrammeerd en ik moest ook een programmeertaal vinden die grafisch werkt. Na een avondje zoeken en proberen, besloot ik te gaan werken met een programmeertaal waarmee ik in een ver verleden wel wat had gewerkt: PHP. En weer, zoals altijd eigenlijk, werd ik overvallen door de kracht van programmeren. Met een paar regels code een vlak van 1793×1793 pixels vullen, precies op de manier zoals ik dat wilde, dat is welhaast magie.
En weer, zoals altijd eigenlijk, werd ik overvallen door de kracht van programmeren. Met een paar regels code een vlak van 1793×1793 pixels vullen, precies op de manier zoals ik dat wilde, dat is welhaast magie. Wat een feest! Ik kan er uren naar kijken. Je ziet hiernaast het eerste stukje, linksboven. Ik heb ervoor gekozen het vlakke in een zwart kader te plaatsen en tussen elke tegel een pixelbreed randje te zetten. 16×16=256 tegels. Van zo’n stukje zijn er dus nog 256. Het begint links bovenaan met een volledig zwart vakje, meteen daarnaast zie je 0000000000000001, daarnaast 0000000000000010, daarnaast 0000000000000011 etc. Rechts onderaan zie je, als je goed kijkt, 0000111100001111 (3855).
Wat een feest! Ik kan er uren naar kijken. Je ziet hiernaast het eerste stukje, linksboven. Ik heb ervoor gekozen het vlakke in een zwart kader te plaatsen en tussen elke tegel een pixelbreed randje te zetten. 16×16=256 tegels. Van zo’n stukje zijn er dus nog 256. Het begint links bovenaan met een volledig zwart vakje, meteen daarnaast zie je 0000000000000001, daarnaast 0000000000000010, daarnaast 0000000000000011 etc. Rechts onderaan zie je, als je goed kijkt, 0000111100001111 (3855). En wat nu? De afdruk is dus goed gelukt. Ik ga deze plakken op een stuk foamboard en ik hang hem in mijn lokaal. Ook ga ik hem nog eens bestellen maar dan achter plexiglas opgeplakt of op aluminium. Duur maar mooi.
En wat nu? De afdruk is dus goed gelukt. Ik ga deze plakken op een stuk foamboard en ik hang hem in mijn lokaal. Ook ga ik hem nog eens bestellen maar dan achter plexiglas opgeplakt of op aluminium. Duur maar mooi.