Fractals zelf doen:
Tweetallige boom

In zijn boek "Fractals. Meetkundige figuren in eindeloze herhaling" beschrijft Prof. Hans Lauwerier (1923 - 1997) een aantal talstelsels. Het tweetallige en het drietallige stelsel zijn te visualiseren in een soort boomstructuur. Hiervoor zijn programmaatjes beschikbaar die zijn geschreven in een variant van BASIC, die vandaag de dag niet meer wordt gebruikt. Omdat de code te leuk is om te worden vergeten heb ik die omgezet in JavaScript.

Bron:
Hans Lauwerier: Fractals. Meetkundige figuren in eindeloze herhaling.
5e druk 1992, Uitg. Aramith, Bloemendaal,
ISBN: 90-6834-115-4
.

Op deze pagina wordt programma BOOM2 (pag. 146 van het boek) gebruikt. Dit programma tekent de boomstructuur voor het tweetallige getalstelsel (pag. 14). Klik HIER voor een preview.

Onderstaande uitleg bevat wat jargon. Dat komt aan de orde op mijn site over fractals.
Belangrijke parameters van het programma zijn: svgW en svgH (afmetingen van de figuur, in het voorbeeld 760 × 570 beeldpunten) en P (Orde van de fractal, = 7, = aantal herhalingen van het Axioma dat wordt berekend). De verkortingsfactor in elke stap in de berekening is 'hard' geprogrammeerd en is gelijk aan 0.5.
Deze parameters kun je wijzigen om de invloed op de uitkomst te onderzoeken. Maar probeer ook eens om op andere plaatsen in de code te wijzigen …!

Het oorspronkelijke BASIC-programma gebruikt 'default-initialisatie' van variabelen. Als er geen waarde is toegekend wordt er een nul in gezet. De kracht van BASIC is onder meer dat je je bijna volledig kunt concentreren op het probleem. Dat geeft korte programma's.
De JavaScript-versie vraagt meer inspanning, onder andere doordat JavaScript standaard geen voorzieningen heeft om te plotten. Zaken als het initialiseren van variabelen, het passend maken van de figuur in de viewport en het daadwerkelijk zichtbaar maken van de figuur moet je zelf regelen, waar BASIC dat doet met een enkele opdracht.

Het JavaScript-programma is als volgt opgebouwd:

Gebruiken:

Om met de code te spelen moet je deze downloaden naar je eigen computer en uitpakken. Start boom2.htm door er op te klikken, gebruik zo nodig een lokale webserver. Je hebt meteen een werkend programma.
Raadpleeg het item Een workflow voor het ontwikkelen van JavaScript, in het bijzonder de opmerkingen over hoe je lokaal kunt werken (dus zonder steeds te hoeven uploaden naar de servers van je webhost).
Vereiste schermgrootte is 800 × 710 pixels. De toepassing op deze site maakt SVG-code aan, die wordt getoond door de inhoud van een <svg>-tag aan te passen.

Downloaden:
 
Druk op de knop: Download deze code  File: voorb686.zip, 2018 bytes.

Opmerking:
 
In de listing van het oorspronkelijke BASIC programma zit een foutje, Er staat ergens de regel: FOR l = 1 TO 2^K. Dit leidt er toe dat er twee boomstructuren worden getekend, waarvan er één buiten het window terecht komt. Het valt daardoor niet op. Als in het BASIC-programma de regel WINDOW (-2, -5) - (2, 2.5) wordt veranderd inWINDOW (-2, -5) - (6, 2.5), dan zie je het gebeuren. De juiste code is: FOR l = 1 TO 2^(K-1).
Als je in de JavaScript-function Boom2() de regel LL = Math.pow(2,(K-1)) verandert in LL = Math.pow(2,K), dan zie je het ook.

 
terug

html-686; Laatste wijziging: 20 oktober 2022