Fractals zelf doen:
H-fractal met backtracking

In het item Fractals zelf doen: H-fractal wordt een programma beschreven dat een H-fractal berekent en op het scherm zet. Dat programma, BoomH1, is snel, maar vraagt veel geheugen. Dat komt doordat de SVG-code in één keer wordt gegenereerd en alle data die daarvoor nodig is in het geheugen aanwezig is.
Op deze plaats wordt een variant voorgesteld die nauwelijks geheugen vraagt, maar wel traag is. De SVG-code wordt na elke berekening bijgewerkt. De benodigde data worden bij elke berekening opgezocht of gegenereerd.

Neem, alvorens verder te lezen, kennis van het item Fractals zelf doen: H-fractal.

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 BOOMH2 (pag. 146 van het boek) gebruikt. Dit programma tekent de H-fractal (pag. 13), klik HIER voor een preview (Let op: traag!).

De hier gebruikte methode heet Backtracking. Daarbij wordt bij elk punt gekeken of er nog uitbreidingen aan de boomstructuur nodig zijn. Elke wijziging/uitbreiding wordt meteen in de figuur aangebracht.

De verdere 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), P (Orde van de fractal, = 5, = aantal herhalingen van het Axioma dat wordt berekend en getekend), A (de verkortingsfactor in elke stap in de berekening, = 0.5). en SFactor ( een schaalfactor, die wordt gebruikt om de figuur netjes in de viewport te krijgen, = 350).
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 boomh1.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: voorb684.zip, 2319 bytes.

 
terug

html-684; Laatste wijziging: 12 oktober 2022