33
Matematisk illustrering av fraktalisk tillv¨ axt och orgrening i v¨ axtstrukturer Alicia Palm´ er [email protected] Supervisor: Mikael Tylmad, Sergej Libov Examiner: Sergej Libov Gymnasiearbete, 100 po¨ ang Tullinge gymnasium 3 maj 2018

Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

Matematisk illustrering av fraktalisk tillvaxt ochforgrening i vaxtstrukturer

Alicia [email protected]

Supervisor: Mikael Tylmad, Sergej LibovExaminer: Sergej Libov

Gymnasiearbete, 100 poang

Tullinge gymnasium

3 maj 2018

Page 2: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

Sammanfattning

Hypoteser om en matematiskt uppbyggd natur har lagts fram av flera olikavetenskapsman genom tiderna men har i vissa fall varit svara att bevisa i ochmed manga av de naturliga monsternas icke-euklidiska komplexitet. Ar 1975myntade matematikern Benoit Mandelbrot begreppet fraktaler och menade paatt denna form av rekursiva geometri lag till grund for naturens utseende. Foratt bidra till att bevisa en matematiskt uppbyggd natur undersoktes darfor tioolika vaxter i detta arbete ur matematisk synpunkt baserat pa just fraktalteori.Regelbundna forgreningar och tillvaxt hos vaxterna translaterades darfor tillformler genom antingen L-system eller rekursion och dessa illustrerades sedanmed hjalp av skoldpaddsgrafik i JavaScript.Alla tio vaxter kunde aterskapas med skoldpaddsmetod genom en av de tvamatematiska metoderna, vilket darmed gor att undersokningen kan anvandassom bidrag till att pavisa en matematiskt beskrivbar form av tillvaxt hos vaxter,och darmed hos naturen som helhet.

Abstract

Different hypothesis of a mathematically built nature has been suggested bymultiple scientists throughout the ages, although it in some cases has beendifficult to prove due to many of natures non-euclid complexity of shapes. In1975 mathematician Benoit Mandelbrot created the phrase fractals and meantthat this form of recursive geometry formes the basis of natures appearance.As a contribution to prove a mathematically based nature, ten different plantswere examined from a mathematical perspective in this study, all based onfractal theory. Regular branching and growth was therefore translated intomathematical formulas using either L-systems or recursion, and these were thenillustrated with turtle graphics in JavaScript.All of the ten plants were able to recreate using one of the two mathematicalmethods, and therefore this study could be seen as a contribution to demonstratea mathematically describable form of growth among plants, and therefore ofnature as a whole.

Page 3: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

Acknowledgments

For dina extraordinara kunskaper inom matematik, programmering och peda-gogik vill jag framfora ett stort tack till Mikael Tylmad som varit handledare forprojektet och bidragit med sitt vetenskapliga engagemang anda sedan arbetetsforsta dag.

Med stor kannedom om vaxtriket och dess komponenter vill jag aven framforaett stort tack till Lillemor Palmer for ditt engagemang och bidrag till arbetetsbotaniska delar.

Slutligen vill jag framfora ett tack till Sergej Libov som har handlett arbetetunder skoltid och bidragit med vardefulla synpunkter och forbattringsatgarderunder projektets gang.

Page 4: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

INNEHALL 3

Innehall

1 Syfte 5

2 Fragestallning 5

3 Bakgrund 5

3.1 Fraktalernas historik . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.2 Fraktalers kannetecken, uppbyggnad och rekursivitet . . . . . . . 5

3.2.1 Mandelbrot-mangden . . . . . . . . . . . . . . . . . . . . 6

3.3 Lindenmayersystem . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.3.1 L-system, exempel . . . . . . . . . . . . . . . . . . . . . . 7

3.3.2 Grafisk illustrering av L-system . . . . . . . . . . . . . . . 8

3.4 Grafisk illustrering av fraktaler skapade med rekursionsformler . 9

3.5 Vaxters tillvaxt och funktion . . . . . . . . . . . . . . . . . . . . 10

4 Metod 10

4.1 Metodbeskrivning . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.2 Experimentbeskrivning . . . . . . . . . . . . . . . . . . . . . . . . 11

5 Resultat 11

5.1 Vaxter skapade med L-system . . . . . . . . . . . . . . . . . . . . 11

5.2 Vaxter skapade med rekursionsformler . . . . . . . . . . . . . . . 17

6 Diskussion 24

6.1 Resultat av undersokningen . . . . . . . . . . . . . . . . . . . . . 24

6.2 Datorgenererad respektive verklig uppbyggnad, upprepningar ochdess begransningar . . . . . . . . . . . . . . . . . . . . . . . . . . 25

6.3 Anvandningsomraden och fortsatt forskning . . . . . . . . . . . . 26

6.4 Felkallor och forbattringar . . . . . . . . . . . . . . . . . . . . . . 26

Referenser 28

Figurforteckning 29

Bilagor 30

Page 5: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

INNEHALL 4

Introduktion

”If I had a world of my own, everything would be nonsense. Nothing would bewhat it is because nothing would be what it isn’t. And contrary wise, what is,it wouldn’t be. And what it wouldn’t be, it would. You see?”

Det ar vad Alice sager precis innan hon faller ner genom kaninhalet i filmen”Alice in wonderland” (1951) baserad pa matematikern Lewis Carrols bok medorginaltiteln ”Alice’s Adventures in Wonderland” fran 1865.

Precis som Alice sager sa behover inte allt vara vad det ar, eftersom att alltskulle vara vad det inte ar. Vad som vid forsta anblick inte verkar se ut sommatematik behover inte nodvandigtvis vara vad det utger sig for att vara.

Upprepade monster i stora och sma skalor kan aterfinnas pa flera platser i na-turen, aven om de ibland kan vara svara att urskilja vid forsta anblick. Jag hardarfor valt att undersoka tio olika vaxter fran ett matematiskt perspektiv medhjalp av teori om fraktaler, for det som tros vara naturens under ar kanske intenagot annat an regelbestamda upprepningar av monster. Det ar kanske ingetannat an naturens matematik.

Page 6: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

1 Syfte 5

1 Syfte

Undersokningens syfte var att identifiera fraktaliska strukturer i tio olika vaxtersamt att aterskapa dessa grafiskt med hjalp av L-system eller rekursionsformleroch illustrera dessa i JavaScript. Detta for att bidra till att pavisa en matema-tiskt beskrivbar natur.

2 Fragestallning

Vilka fraktaliska strukturer och monster i tio utvalda vaxter kan illustreras medL-system eller rekursionsformler i JavaScript?

3 Bakgrund

3.1 Fraktalernas historik

Under 1800-talet forstod matematikerna att vissa monster och figurer inte kun-de forklaras med den euklidiska eller “klassiska” geometrin som fanns. Dessafigurer blev darfor kallade for “monster”. Aven om det fanns vissa exempel somstuderades och kunde beskrivas matematiskt saknades en overgripande teori omhur dessa var sammankopplade. [1]

Ar 1975 myntade matematikern Beniot Mandelbrot termen frakaler, baserat padet latinska ordet “fractus” som betyder frakturerad eller bruten. Detta for attsamla och beskriva denna familj av icke-euklidiskt geometriska figurer, som handessutom ansag ligga till grunden for naturens uppbyggnad; [2]

“Why is geometry often described as ‘cold’ and ‘dry?’ One reason lies in itsinability to describe the shape of a cloud , a mountain, a costline or a tree. Cloudsare not spheres, mountains are not cones, coastlines are not circles and bark isnot smooth, nor does lightning travel in a straight line. [...] Nature exhibits notsimply a higher degree but an altogether different level of complexity.” [3] “[...]Itdescribes many of the irregular and fragmented patterns around us, and leadsto full-fleged theories, by identifying a family of shapes I call fractals” [3]

3.2 Fraktalers kannetecken, uppbyggnad och rekursivitet

Definitionen av fraktaliska strukturer och monster forklaras vanligtvis med atten upprepning av tidigare former aterfinns i olika forstoringsdjup. Detta fe-nomen beskrivs ofta med termen ”Self-similarity” eller sjalvlikhet oversatt.Sjalvlikheten kan aterkomma i samma storlek som tidigare eller i andra storle-kar.

Med matematiskt sprak anvands istallet termen rekursivitet for att forklarafraktalernas uppbyggnad. Termen syftar till aterkomst [4] och att “en funk-tion ar rekursivt definierad om hogerledet i dess definierande ekvationer refe-rerar till funktionen sjalv.”[4] En rekursiv talfoljd innebar pa detta satt att

Page 7: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

3.3 Lindenmayersystem 6

nastkommande tal baseras pa tidigare tal i talfoljden.

En av de mest valkanda rekursiva talfoljderna ar Fibonaccis talfoljd [5]. Fibonac-ci var en matematiker som pa 1200-talet anvande sig av denna rekursionsformelfor att beskriva kaninpopulationers tillvaxt[6]:

Fn = Fn−1 + Fn−2

I formeln avser F ett tal i talfoljden dar n ar ett heltal. Tal nummer n i foljdenar pa detta satt summan av de tva tidigare talen i talfoljden. Tal som ingar iFibonaccis talfoljd har aven aterfunnits i vaxtriket, daribland i bladfordelningoch frospiraler. [6]

3.2.1 Mandelbrot-mangden

zn+1 = z2n + c

Mandelbrot-mangden anses vara en av de mest valkanda fraktalerna, myc-ket pa grund av Benoit Mandelbrots myntande av fraktaluttrycket. Formelndenna mangd byggs upp av ar en rekursionsformel. I detta fall har mangdenett startvarde och en formel som anger hur vardet av nastkommande tal skaberaknas. Med ett startvarde i form av ett reellt tal kommer mangden myc-ket snabbt att eskalera. Ett imaginart tal som startvarde genererar istallet attmangden kommer halla sig inom en begransad yta kring origo i ett koordinat-system.

Figur 1: Mandelbrotmangden

3.3 Lindenmayersystem

Lindenmayersystem eller L-system introducerades ar 1968 av den ungerska bio-logen Aristid Lindenmayer for att studera tillvaxten hos enkla flercelliga orga-

Page 8: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

3.3 Lindenmayersystem 7

nismer och foljaktligen storre vaxter och vaxtorgan. [7]

Ett L-system byggs upp av olika sa kallade strangar, vilka ar foljder av symboler.Vanligen anvands olika kombinationer av bokstaver, siffror och/eller matema-tiska symboler. Dessa symboler behover dock inte ha samma innebord som iandra matematiska sammanhang. Ett additionstecken, + , till exempel behoveri ett L-system inte innebara addition.

For varje komponent i strangen finns sedan en ersattningsregel som sager attdenna specifika symbol i den angivna strangen ska ersattas av en bestamd kom-bination av andra symboler i kommande upprepningar.

Systemet startar alltid med en startande strang, kallad ett axiom. Fran dennastartar en omskrivningsprocess som antingen kan vaxa sig oandligt stor ellerbegransas genom angivning om ett bestamt antal upprepningar.

3.3.1 L-system, exempel

Ett enkelt L-system kan byggas upp med tva valda symboler; siffrorna 0 och1. De omskrivningsregler som galler i detta exempel sager att varje nolla skaersattas av en etta, och varje etta ska ersattas med tva nollor samt en etta.Darefter valjs axiomet 010 och antalet upprepningar bestams till tva.

0 ⇒ 1

1 ⇒ 001

axiom = 010

n = 2

Figur 2: Tva utvecklingar av axiomet 010 med symboler 0 och 1

Axiomet kommer darmed att utvecklas tva ganger enligt figur 2. Satts ingenbegransning av antalet upprepningar kommer denna figur att vaxa sig oandligtstor.

Om ytterligare en strangkomponent 2 laggs till i systemet och utvecklingsreg-lerna andras till att noll nu ger en nolla och en tvaa och att en etta ger en nollaoch en etta, samt att en tvaa ersatts med en tvaa vaxer mangden istallet enligtfigur (3)

0 ⇒ 02

Page 9: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

3.3 Lindenmayersystem 8

1 ⇒ 01

2 ⇒ 2

axiom = 010

n = 2

Figur 3: Andra utveckling av axiomet 010 med symbolerna 0,1 och 2.

Nar systemet har utvecklats antal angivna ganger sa ges en lang textstrang somresultat. Ovan gavs resultatet 0220201022. Det ar detta resultat som senare kananvandas for att generera grafiska illustreringar av L-system.

3.3.2 Grafisk illustrering av L-system

For att illustrera L-system i form av bilder och monster kan symboler i strangaraven ersattas med instruktioner. Instruktioner kan till exempel vara att ritaett streck av bestamd langd och riktning eller rotera nuvarande riktning athoger/vanster ett bestamt antal grader. Programmering anvands vanligen foratt bade utveckla systemet enligt angivna utvecklingsregler och darefter laggatill instruktioner for varje strang samt for att utfora dessa.

Inom programmering kan grafisk illustrering av L-system liknas med en skold-padda som ritar i sanden med svansen da den gar runt pa skarmen enligt spe-cifika instruktioner som erhallits. Instruktionerna ar baserade pa L-systemetskomponenter. Det ar forst nar L-systemet ar utvecklat sa manga ganger somangetts som skoldpadda far instruktioner som darefter kan utforas. Det ar pasa satt L-systemet som anger hur skoldpadda ritar i sanden och darmed hurmonstret utvecklas grafiskt. Vinklar for rotationer och langder pa streck somritas ut ar bestamda i forvag.

Instruktioner kan forutom utritande av streck och rotation vara att ga steg utanatt streck ritas samt att en position kan sparas och vid senare tillfalle atergastill. Att spara och aterga till en position sker med en stack, vilket betyder attpositionen som sparades senast kommer att atergas till forst. De engelska ordenPush och Pop anvands som spara och aterga. Sparande av position och aterhopptill sparade positioner anvands for att skapa strukturer som vaxer at flera hallsamtidigt, likt forgreningar i figur 5.

Forutsattningen for att L-system skapar fraktaliska monster och strukturer lig-ger i omskrivningsreglerna, som genererar sjalvlikhet nar strangarna utvecklas.

Page 10: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

3.4 Grafisk illustrering av fraktaler skapade med rekursionsformler 9

Figur 4: Illustration av utvecklad strang ritad enligt instruktioner

Figur 5: Push and Pop

L-system kan daremot skrivas pa ett sadant satt att utveckling som genererarsjalvlikhet inte skapas. Darmed klassificeras inte alla former skapade med L-system som fraktaler utan enbart som figurer eller strukturer. Detta kan ske dautvecklingen inte genererar synliga sjalvlikheter, exempelvis om utritade streckritas ovanpa varandra pa samma position och i samma riktning.

Om antalet utvecklingar ar sa pass fa att sjalvlikhet inte hinner upptradamarkbart sa definieras inte heller formen som fraktalisk, aven om utvecklings-reglerna i sig har forutsattning for det.

3.4 Grafisk illustrering av fraktaler skapade med rekur-sionsformler

Fraktaler skapade med rekursionsformler kan likt L-system illustreras grafisktmed skoldspaddsgrafik. Rekursionsformler astadkoms programmatiskt med funk-tioner som har till uppgift att rita ut streck och som kallar pa sig sjalva damonstret ritas ut. Utritningsfunktionen ar pa sa vis rekursiv.

I en rekursiv utritningsfunktion skapas ett grundmonster och for att fa det-

Page 11: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

3.5 Vaxters tillvaxt och funktion 10

ta monster att upprepas kan funktionen kalla pa sig sjalv. Det ar viktigt attdet rekursiva anropet meddelar sin efterfoljare en del information sa att dennakan avgora om rekursionen ska fortsatta eller avbrytas. Darfor brukar rekursivafunktioner borja med att kontrollera sitt avbrottsvillkor.

En enkel rekursiv funktion kan se ut enligt foljande:

function fibonacci (z0, z1, antal, resultat)

{

if (antal == 0)

return resultat;

return fibonacci (z1, z0+z1, antal-1, resultat+" "+ (z0+z1));

}

alert (fibonacci(1, 1, 20, "1 1"));

Det forsta som sker i den rekursiva funktionen ar ett test som kontrollerar av-brottsvillkoret. Om villkoret annu inte natts fortsatter funktionen med ett rekur-sivt anrop. Resultatet blir att textstrangen resultat kommer att innehalla detangivna antalet tal ur Fibonaccis talfoljd. I slutet presenteras detta pa skarmen.

Aven da rekursionsformler illustreras grafiskt ar det nodvandigt att avbrotts-villkoret kontrolleras, eftersom att alla streck som ritas ut beror pa tidigareutritade streck i monstret.

3.5 Vaxters tillvaxt och funktion

Vaxters primara uppgift ar att binda solljusets energi genom att omvandla kol-dioxid och vatten till energirikt druvsocker och syre i en process benamnd fo-tosyntesen. For att detta ska kunna ske maste vaxten ha solljus. Vaxter vaxerdarfor pa ett satt som gor att dess fotosyntesfunktion gynnas. Detta kraverbland annat forgrening av stammen for att blad ska bli belysta av solljuset. [8]

Vaxter bestar av vaxtceller som har specifika utseenden beroende pa dess ar-betsuppgift i cellen. Exempelvis har grona celler innehaller klorofyll till uppgiftatt kunna utfora fotosyntes. Bladnerver i bladet har som funktion att trans-portera naringsamnen och utgora mekaniskt stod [9]. Vilka funktioner som skeri vaxter samt hur de ser ut bestams av dess DNA. [10] Tillvaxten hos vaxterpaverkas aven av olika abiotiska faktorer, sasom vindstyrka och riktning samtlutning pa marken de vaxer pa [8].

4 Metod

4.1 Metodbeskrivning

Tva olika programkoder skrivna i Javascript anvandes i experimentet. For samt-lig kod och forklaring av denna, se bilaga 1.

Page 12: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

4.2 Experimentbeskrivning 11

4.2 Experimentbeskrivning

Tio olika vaxter valdes ut utifran bilder och illustrationer i vaxtbocker. Ettoskadat asplov plockades darefter och lades i press i bok i 7 dagar.

Med hjalp av programverktyg skrivet i JavaScript stalldes parametrar for langder,vinklar och antal iterationer in for att generera grafiska modeller av vaxtkom-ponenter i de tio utvalda vaxterna. Med vaxtkomponenter avsags bladnerver,blomkonstellationer och forgreningar. Vaxternas uppbyggnad undersoktes medavseende pa forgreningar samt forhallanden mellan langder pa stam och grenarsamt vinklar mellan dessa. Darefter approximerades strukturerna och omskrevstill ett L-system eller rekursionsformel i programverktygen. Vinkelstorlekar ochlangder samt regler for strangar anpassades for att skapa en grafisk illustrationoverrensstammande med vald vaxtkomponent i respektive vaxt.

5 Resultat

5.1 Vaxter skapade med L-system

Resultat presenteras i form av fraktaliska illustrationer genererade med L-system.Till hoger om varje vaxtillustration finns en jamforelsebild med den verkligavaxten som aterskapats. En kort beskrivande text om vad som undersoktes i re-spektive vaxt samt eventuella kodspecifikationer foljer efter illustration och bild.Under dessa har en lista placerats innehallande axiom, antal utvecklingar, ut-vecklingsregler samt instruktioner. Observera att “{” och “}” varierar mellan attvara sparande pa position respektive aterhopp till senast sparade position ochatt dessutom innebara rotation. Utvecklingsregler for ovriga tecken i strangarnaantas ersattas av sig sjalva om inget annan anges i listan.

Page 13: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.1 Vaxter skapade med L-system 12

Vaxt 1; Halmstra

Figur 6: Ett halmstra, jamforelse

Straets forgrening till ax ar inte symmetriskt och vaxer enbart at ett hall. Enbartsma vinklar forekommer.

Axiom :

0

Antal utvecklingar :

4

Utvecklingsregler :

0 = 1{[1}[{0}{10}

1 = 11

Instruktioner :

0 = turtle.moveWithPen(2)

1 = turtle.moveWithPen(4)

[ = turtle.pushPosition(); turtle.rotate(6)

{ = turtle.pushPosition()

} = turtle.popPosition()

Page 14: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.1 Vaxter skapade med L-system 13

Vaxt 2; Brudsloja

Figur 7: Jamforelse Brudsloja, Gypsophila paniculata

Blomkonstallationens forgrening undersokt. Forgrening sker for varje niva i trenya grenar. Grenarnas langd avtar relativt snabbt for varje niva. Inte symmet-risk men forgrening sker lika mycket at bade hoger och vanster.

Axiom :

0

Antal utvecklingar :

6

Utvecklingsregler :

0 = 1{[0}]{0}[0]

1 = 11

Instruktioner :

0 = turtle.moveWithPen(2)

1 = turtle.moveWithPen(6)

[ = turtle.rotate(45)

] = turtle.rotate(-30)

{ = turtle.pushPosition()

} = turtle.popPosition()

Page 15: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.1 Vaxter skapade med L-system 14

Vaxt 3; Blabarsris

Figur 8: Jamforelse blabarsris

Forgrening sker at bade hoger och vanster fran en huvudstam. Relativt storavinklar, dock spetsiga.

Axiom :

0

Antal utvecklingar :

4

Utvecklingsregler :

0 = 10[[0}][{[10]}0

1 = 11

[ = 1

Instruktioner :

0 = turtle.moveWithPen(4)

1 = turtle.moveWithPen(4)

[ = turtle.pushPosition(); turtle.rotate(25)

] = turtle.popPosition(); turtle.rotate(-17)

{ = turtle.pushPosition()

} = turtle.popPosition(); turtle.rotate(30)

Page 16: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.1 Vaxter skapade med L-system 15

Vaxt 4; Allium

Figur 9: Jamforelse, Allium

Blomkonstallationen undersoktes. Antalet grenar i illustrationen ar tolv forrespektive niva. Dock svart att avlasa i bilden exakt hur manga som finns.Langderna pa streck forminskas relativt mycket for varje ny niva. I koden ritasnya streck at till hoger om det foregaende. Vinkeln mellan streck i streckcirklarar konstant 30 grader men utritandet av streckcirklar i nya nivaer vrids med r.

Axiom :

0{1}[{1}[{1}[{1}[{1}[{1}[{1}[{1}[{1}[{1}[{1}[{1}

Antal utvecklingar :

3

Utvecklingsregler :

1 = {r4{2}[{2}[{2}[{2}[{2}[{2}[{2}[{2}[{2}[{2}[{2}[{2}}

2 = {rr5{3}[{3}[{3}[{3}[{3}[{3}[{3}[{3}[{3}[{3}[{3}[{3}}

3 = {rrr6{7}[{7}[{7}[{7}[{7}[{7}[{7}[{7}[{7}[{7}[{7}[{7}}

Instruktioner :

0 = turtle.moveWithPen(700)

1 = turtle.moveWithPen(233)

2 = turtle.moveWithPen(55)

3 = turtle.moveWithPen(13)

4 = 1

5 = 2

6 = 3

7 = turtle.moveWithPen(2)

[ = turtle.rotate(30)

r = turtle.rotate(45)

{ = turtle.pushPosition()

} = turtle.popPosition()

Page 17: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.1 Vaxter skapade med L-system 16

Vaxt 5; Juniperus Chinesis

Figur 10: Jamforelse, Juniperus chinesis

Forgrening fran stam undersoktes.Forgreningen ar inte symmetrisk men forekommerat bade hoger och vanster. 1 ⇒ 11 ger langa grenar trots korta langder pa streck.

Axiom :

0

Antal utvecklingar :

5

Utvecklingsregler :

0 = 1{[1}[{0}{10]10}]{0}{1]10}

1 = 11

Instruktioner :

0 = turtle.moveWithPen(5)

1 = turtle.moveWithPen(5)

[ = turtle.rotate(20)

r = turtle.rotate(-20)

{ = turtle.pushPosition()

} = turtle.popPosition()

Page 18: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.2 Vaxter skapade med rekursionsformler 17

5.2 Vaxter skapade med rekursionsformler

Resultat presenteras i form av fraktaliska illustrationer genererade med rekur-siva formler. Varje vaxtillustration presenteras med den kod som anvandes foratt skapa vaxten. En jamforelsebild med den verkliga vaxt som aterskapats harplacerats till hoger om illustrationen. En kort beskrivande text om vad somundersoktes i respektive vaxt samt eventuella kodspecifikationer foljer efter il-lustration och bild.

Page 19: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.2 Vaxter skapade med rekursionsformler 18

Vaxt 6; Bladnervsforgrening i asplov

Figur 11: Bladnervsforgrening i asplov, jamforelse

Forgrening av bladnerver lovet undersoktes.Forgreningen sker symmetriskt badeuppat och at bada sidor. Forgreningen tacker upp stor yta utan att bli spetsigi andarna.

function tree(l, it)

{

if (it == 0) return;

var d = 1.4;

var le = l/d;

turtle.pushPosition();

turtle.rotate(55);

turtle.moveWithPen(le/d);

tree(le/d, it-1);

turtle.popPosition();

turtle.pushPosition();

turtle.rotate(-55);

turtle.moveWithPen(le/d);

tree(le/d, it-1);

turtle.popPosition();

if (it-1 != 0)

{

turtle.moveWithPen(le);

tree(le, it-1);

}

}

Page 20: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.2 Vaxter skapade med rekursionsformler 19

Vaxt 7; Forgrening av persiljeskalkar

Forgrening av stam undersoktes. Forgreningen sker for varje iteration i tre gre-nar. Langden for grenar avtar snabbt efter respektive niva. Forgreningen ar intesymmetrisk men sker lika mycket at hoger som vanster.

Figur 12: Forgrening jamforelse

function tree(l, it)

{

if (it == 0) return;

var d = 1.6;

var le = l/d;

turtle.pushPosition();

turtle.moveWithPen(le);

tree(le/d, it-1);

turtle.rotate(25);

tree(le/d, it-1);

turtle.rotate(-59);

tree(le/d, it-1);

turtle.popPosition();

}

Page 21: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.2 Vaxter skapade med rekursionsformler 20

Vaxt 8; Klase Spirea

Blomkonstallation undersoktes. Forgrening sker symmetriskt och tillvaxt skerbade uppat och at vardera sida. Spetsiga vinklar samt relativt stor minskningav grenlangder efter varje iteration.

Figur 13: Jamforelse Klase Spirea, jamforelse

function tree(l, it)

{

if (it == 0) return;

var d = 1.5;

var le = l/d;

turtle.pushPosition();

turtle.moveWithPen(le);

tree(le, it-1);

turtle.rotate(35);

tree(le/d, it-1);

turtle.rotate(-70)

tree(le/d, it-1);

turtle.popPosition();

}

Page 22: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.2 Vaxter skapade med rekursionsformler 21

Vaxt 9; Genomskarning av Romanesco

Figur 14: Genomskarning romanesco jamforelse

Forgrening fran central stam undersoktes. Forgreningen sker symmetriskt medrelativt stor men spetsig vinkel. Rekursion sker bade uppat och at hoger respek-tive vanster.

function tree(l, it)

{

if (it == 0) return;

var d = 1.45;

var le = l/d;

turtle.pushPosition();

turtle.moveWithPen(le);

tree(le, it-1);

turtle.rotate(65);

tree(le/d, it-1);

turtle.rotate(-130)

tree(le/d, it-1);

turtle.popPosition();

}

Page 23: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.2 Vaxter skapade med rekursionsformler 22

Vaxt 10; Akerfraken

Figur 15: Akerfraken, jamforelse

Avtagande grenlangder fran stam undersoktes. Funktionen som skapar Akerfrakengor totalt ett rekursivt anrop och utnyttjar en hjalpfunktion for att rita ut gre-narna. Detta ger enbart en mer kompakt kod da varje gren ar en sammansattningav tva streck som ar vinklade mellan 15 och 20 grader i forhallande till varandrafor att skapa en bojningseffekt. Rekursion sker endast uppat.

All kod presenteras pa nasta sida.

Page 24: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

5.2 Vaxter skapade med rekursionsformler 23

function tree(l, it)

{

if (it == 0) return;

var d = 1.2;

var le = l/d;

turtle.moveWithPen(le);

turtle.pushPosition();

turtle.rotate(3);

turtle.moveWithPen(0.5*le);

tree(le/d, it-1);

turtle.popPosition();

for (var tecken = -1; tecken <= 1; tecken += 2)

{

branch(140*tecken, -15*tecken, 0.6, 0.2, le);

branch(110*tecken, -15*tecken, 0.7, 0.3, le);

branch(90*tecken, -20*tecken, 0.7, 0.3, le);

branch(70*tecken, -20*tecken, 0.6, 0.3, le);

branch(40*tecken, -20*tecken, 0.5, 0.2, le);

}

}

function branch(r1, r2, l1, l2, le)

{

turtle.pushPosition();

turtle.rotate(r1);

turtle.moveWithPen(l1*le);

turtle.rotate(r2);

turtle.moveWithPen(l2*le);

turtle.popPosition();

}

Page 25: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

6 Diskussion 24

6 Diskussion

6.1 Resultat av undersokningen

Alla de tio vaxterna som valdes ut kunde aterskapas, antingen med L-systemeller rekursionsformel.

Tabellen nedan tydliggor och forenklar resultatet i undersokningen samt be-svarar fragestallningen “Vilka fraktaliska strukturer och monster i tio utvaldavaxter kan illustreras med L-system eller rekursionsformler?”

Undersokt vaxt Fraktalisk del undersokt och beskrivenHalmstra Forgrening till axBrudsloja BlomkonstallationenBlabarsris Forgrening av stammen

Allium BlomkonstallationenJuniperus Chinesis Forgrening av och fran stammen

Asp Bladnervernas forgreningPersilja Forgrening av skalken

Klase Spirea BlomkonstallationenRomanesco Forgrening fran stam (genomskarning)Akerfraken Forgrening fran stam

Valet av vilken metod som anvandes baserades pa vilken metod som genereradeden kortast mojliga formeln. Om forgreningen eller tillvaxten hos en vaxt skeddehelt regelbundet, exempelvis symmetriskt, visade sig en rekursionsformel ge enkortare formel eftersom att sparande pa och tillbakahopp till sparade positionerinte behovde anvandas i samma utstrackning for att skapa forgrening at badehoger och vanster. L-system anvandes da tillvaxt och forgrening inte skedde likasynbart regelbundet.

Da respektive komponent valdes i de tio vaxterna valdes denna del med avse-ende pa hur tydligt denna skulle vara mojliga att aterskapa med L-system ellerrekursionsformel och JavaScriptskodens parametrar.

Huruvida denna undersokning pa egen hand skulle kunna pavisa en matema-tiskt beskrivbar natur ar dock diskuterbar i och med att enbart tio vaxterundersoktes. For att starka hypotesen skulle betydligt fler vaxter behova un-dersokas. Det som daremot talar for hypotesen i detta sammanhang ar att al-la av de tio valda vaxterna kunde aterskapas specifikt, det vill saga att justAkerfraken aterskapades till exempel, och inte enbart en illustration som sagut som en vaxt och mojligen skulle kunna likna en Akerfraken. Detta faktumi kombination med andra flera saker som skulle tyda pa en matematisk natur,exempelvis Fibonaccitalfoljdens forekomst i vaxtriket, skulle darmed innebaraatt denna undersokning kan anses vara en liten del i att i stort bevisa en mate-matiskt beskrivbar och uppbyggd natur.

Page 26: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

6.2 Datorgenererad respektive verklig uppbyggnad, upprepningar och

dess begransningar 25

6.2 Datorgenererad respektive verklig uppbyggnad, upp-repningar och dess begransningar

Vad det ar som gor att vaxters tillvaxt ar lamplig att beskriva med L-systemeller rekursionsformler kan bero pa flera olika faktorer. Nagonstans i en vaxtsDNA finns det bestamt att blad ska skapas eftersom att bladen har funktionersom ar nodvandiga for vaxternas existens. Likaval maste det finnas bestamthur forgreningen av stammen ska ske sa att bladen nar solljuset, och pa sammasatt som det finns flera blad pa ett och samma trad sa sker forgreningar paflera platser. Det som kan konstateras med grafisk illustrering av L-system ochrekursionsformler ar att flera olika tillvaxter och forgreningar kan ske samtidigtoch detta utan att det inverkar eller paverkar andra delar av monstret, likavalsom vaxter har formagan att forgrena sig at flera olika hall samtidigt.

Vad som bestammer antalet upprepningar som ett L-system eller rekursions-formel utvecklas i ar i alla de tio vaxterna begransade till specifika siffror. Vadantalet upprepningar eller iterationer beror pa skulle ocksa kunna kopplas tillvaxters utseende och uppbyggnad. Om vinkelstorlekar betraktas fran datorgene-rerade illustrationer sa kan forgreningar med stora vinklar fran en stam paverkaden totala illustrationens bredd men i ovrigt fortsatta vaxa oandligt stor. I verk-ligheten dar streck istallet ersatts av tunga grenar paverkas vaxtens stabilitetbade av vinkelstorleken mellan gren och stam likval som antalet forgreningar.Vaxtmaterialets kvalite och tyngd skulle darmed paverka antalet utvecklingaroch begransas till ett visst tal, vilket stammer bra overens med undersokningensresultat.

For rekursionsformler specifikt ar utritandet av streck i JavaScript likaval somforgreningar i verkligheten beroende av tidigare komponenter. Blomkonstalla-tioner eller blad som ska bildas fran en gren ar helt beroende av att det finnsen gren under som de kan bildas ifran. Detta utgor ytterligare en faktor sompavisar denna matematiska metods lamplighet i att beskriva vaxters tillvaxt.

I jamforelsebilderna for vaxterna syns i vissa fall att grenars tjocklek forandrasvarpa forgrening sker. I Brudslojan framforallt pavisas en tydlig forminskningav tjockleken pa grenarna vartefter forgrening sker. Forandringar i tjocklek pagrenar efter forgrening anvandes inte som parameter i JavaScriptskoden i un-dersokningen och darmed paverkas inte antalet forgreningar av att streckenblivit for smala, utan enbart av att de blivit for korta for att vara synliga.Med hansyn till forminskning av tjocklek av grenar i verkligheten maste antalupprepningar och darmed forgreningar aven begransas av vaxtens mojlighet attforgrena sig. Till slut bor en punkt nas da tjockleken pa en gren ar en cell tjockoch darmed kan ytterligare forgrening inte kan ske fran denna punkt(Detta ominte begransning av forgrening har skett tidigare pa grund av andra faktorer).

Antalet forgreningar skulle ocksa kunna bero pa att efter ett visst antal upprep-ningar skapas grenar som inte ar nodvandiga for att dess funktion i vaxten skafylla sitt andamal. En jamforelse mellan fem och sju iterationer i forgreningarav bladnerver i Asplovet till exempel visar pa att manga grenar hamnar naraoch overlappar varandra i det inringade omradet (16).

Page 27: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

6.3 Anvandningsomraden och fortsatt forskning 26

Figur 16: Vid fem iterationer uppnas tillracklig tackning.

Vid fem iterationer ar nerverna jamt fordelade i det inringade omradet och pasa satt finns redan tillrackligt med bladnerver i detta omrade for att de ska fyllasin funktion i denna del av bladet. Sju upprepningar genererar i princip baraoverlappning.

6.3 Anvandningsomraden och fortsatt forskning

Den matematiska uppbyggnaden i vaxter kan kopplas till flera andra frage-stallningar. Dels skulle dess rekursiva tillvaxt kunna bidra till forstaelsen omhur vaxt-DNA:t fungerar, i och med att sjalvlikhet genereras da de vaxer.

Mojlighet att se samband mellan vaxter med liknande matematisk uppbyggnadoch dess ursprung skulle ocksa kunna vara en mojlig metod for att identifieraslaktskap mellan olika arter som komplement till andra faktorer for slaktskaps-bestamning som idag anvands.

Trots att den matematiska beskrivningen av vaxters tillvaxt i sig inte utgor enforbattring av manniskans livsvillkor i dagslaget skulle hypotesen om att naturenar uppbyggd pa fraktaler eller generellt matematik kunna appliceras exempelvisinom medicin, for om vaxter vaxer rekursivt sa kanske manniskokroppen ocksagor det? Skulle mojligtvis tillvaxt och forgrening av hudvavnader, blodkarl ochlungor med mera kunna ges en matematisk beskrivning skulle avvikelser frandessa skulle kunna identifieras och darmed kunna anvandas i diagnostiskt syftefor att forhindra eventuella foljdproblem eller till att upptacka sjukdomar.

6.4 Felkallor och forbattringar

Undersokningen av de tio olika vaxterna begransades delvis da inte alla vaxterfanns att tillga i verkligheten da undersokningen genomfordes, detta pa grundav arstid. Langder och forhallanden av forgreningar approximerades i dessa fallistallet baserat pa bilder. Darmed gar det inte att sakerstalla att de matematiskaillustrationerna helt och hallet overensstammer med verkligheten. Dock finns

Page 28: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

6.4 Felkallor och forbattringar 27

det olika variationer av langder och forhallanden aven bland verkliga vaxterberoende pa tillvaxtstadie och individuella avvikelser, vilket genererar att enundersokning baserat pa en verklig vaxt pa motsvarande satt inte heller kan geen allman formel for alla individer av arten.

De tekniska aspekter som kan paverka illustrationernas verklighetsgangbarhetar dels att illustrationerna endast behandlade tvadimensionella forgreningar.Tredimensionella strukturer hade gett vaxterna ett mer verklighetstroget utse-ende eftersom att fler detaljer da hade kunnat inkluderas samt att synvinkelnsom illustrationen skapats fran inte hade spelat roll for formelns uppbyggnad.Andras synvinkeln fran ett tvadimensionellt perspektiv sa kan hela formelnsuppbyggnad behova andras, men tredimensionellt skulle enbart en figur gallafran alla synvinklar.Daremot paverkas inte alla tio vaxter lika mycket av denna faktor eftersom attde alla tar upp olika tredimensionellt omrade i verkligheten. Forgreningar avbladnerver i asplov (11) och halmstraet (6) tar inte upp namnbara tredimen-sionella utrymmen i verkligheten. En genomskarning ar tvadimensionell, vilketgenererar att genomskarning av Romanesco (14) inte berors av denna faktoralls. Dock skulle en hel Romanesco kunna beskrivas i en tredimensionell miljoistallet for en genomskarning.

Ytterligare en faktor som paverkar illustrationernas verklighetsgangbarhet aratt tjockleken pa streck i illustrationerna inte gick att justera i den program-meringsmiljo som anvandes i undersokningen. I de undersokta vaxterna var dettydligt att alla grenar inte var lika tjocka. Som forbattring skulle en parameterlaggas till i programmeringskoden som likt streckens langder aven ger mojlighetatt bestamma dess tjocklek.

Programmeringsmiljon kunde dessutom enbart hantera raka streck. I bland an-nat Brudslojan (12) spelar detta roll for att illustreringen visuellt ska stammaoverrens med verkligheten, aven om forgreningen i sig overensstammer. I Aker-fraken (15) anvandes tva streck som bojdes mellan 15 och 20 grader i forhallandetill varandra for att ersatta en bojd linje, eftersom att ett enda rakt streck in-te ger en visuellt tillfredsstallande avbildning av den verkliga strukturen. Hadeprogrammet behandlat bojda streck hade koden for vaxten darmed blivit kor-tare.

Ytterligare en faktor som paverkar verklighetsutseendet ar att utritandet avstreck sker oberoende av narliggande streck. Darmed kan de overlappa varand-ra. Detta syns tydligt i genomskarning av Romanesco, dar forgreningarna atsidan overlappar med de forgreningar som skapas ovanfor. I jamforelsebilden(14) gar det dock att se att grenarna viker sig da de fysiskt sett nuddar varand-ra.I Juniperus Chinesis genererar dock denna faktor en mycket verklighetstro-gen illustration da overlappningen genererar nyanser av den svarta fargen ochdarmed upplevs barren vara placerade pa ett satt likt det i den riktiga vaxteni jamforelsebilden (14)

Page 29: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

REFERENSER 28

Referenser

[1] R. Sæden Stahl, G. Suhr. Fraktaler. (2015-2016). Hamtat 15/11-17 franhttps://www.kth.se/polopoly fs/1.646945!/kompendium2015v2.pdf.

[2] E. Baird. ALT. FRACTALS. (2011). (Forlagsort okand), Chocolate TreeBooks.

[3] B. Mandelbrot. The fractal geometry of nature. (1977). New York, W.H.Freeman and Company.

[4] Forfattare okand. Rekursion. (1977). Hamtat 20/2-18 franhttps://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/rekursion.

[5] (Forfattare okand). Talfoljder, summor och re-kursioner. (1977). Hamtat 22/2-18 franhttps://www.math.kth.se/cirkel/dokument/kompendium.pdf.

[6] F. Abrahamsson. Fibonaccital. (Artal okant). Hamtat 14/3-18 franhttps://www.math.kth.se/math/GRU/2007.2008/SF1624/ME/Lalgebra/-fibonacci.pdf.

[7] J. Prusinkiewicz, P. Hanan. Lecture Notes in Biomathmatics. (1988).(Forlagsort okand), Springer-Verlag.

[8] L. Olsson O) (Bjorn, L. Engstrand. Vaxter.(Artal okant). Hamtat 14/3-18 franhttps://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/v%C3%A4xter.

[9] Forfattare okand. Rekursion. (artal okant). Hamtat 13/3-18 franhttps://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/bladnerv.

[10] S) (Norden, B. Nordlund. DNA. (Artal okant). Hamtat 22/4-18 franhttps://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/dna.

Page 30: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

FIGURER 29

Figurer

1 Mandelbrotmangden . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Exempel 0 och 1 L-system . . . . . . . . . . . . . . . . . . . . . . 7

3 Exempel 0, 1 och 2 L-system . . . . . . . . . . . . . . . . . . . . 8

4 Grafisk illustrering av L-system 1 . . . . . . . . . . . . . . . . . . 9

5 Grafisk illustrering av L-system 2 med forgrening . . . . . . . . . 9

6 Jamforelse, Halmstra . . . . . . . . . . . . . . . . . . . . . . . . . 12

7 Jamforelse, Gypsophila paniculata . . . . . . . . . . . . . . . . . 13

8 Jamforelse, blabarsris . . . . . . . . . . . . . . . . . . . . . . . . 14

9 Jamforelse Allium . . . . . . . . . . . . . . . . . . . . . . . . . . 15

10 Jamforelse Juniperus Chinesis . . . . . . . . . . . . . . . . . . . . 16

11 Jamforelse bladnerver i Asplov . . . . . . . . . . . . . . . . . . . 18

12 Jamforelse, Persiljeskalkar . . . . . . . . . . . . . . . . . . . . . . 19

13 Jamforelse Klase Spirea . . . . . . . . . . . . . . . . . . . . . . . 20

14 Jamforelse genomskarning Romanesco . . . . . . . . . . . . . . . 21

15 Jamforelse Akerfraken . . . . . . . . . . . . . . . . . . . . . . . . 22

16 Jamforelse bladnervsforgrening 5 och 7 ganger . . . . . . . . . . . 26

17 JavaScriptsmiljo . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Page 31: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

FIGURER 30

Bilaga 1

L-system

Nedan visas en programmatisk miljo for skapande av fraktaliska illustreringarbaserade pa L-system. Programkoden ar skriven i programmeringsspraket Ja-vaScript. Koden innefattar bade utveckling av L-system samt omskrivande avdetta till instruktioner for skoldpadda samt skoldpaddas utforande av dessa.

Figur 17: JavaScriptsmiljo

turtle.x = 300;

turtle.y = totalHeight;

turtle.rotate(90);

Foljande rader kod avser skoldpaddas startposition pa skarmen. x-koordinateni detta exempel har satts till 300 pixlar fran skarmens vanstra kant och y-koordinaten till “totalHeight” vilket avser hela skarmens hojd raknat fran skarmensoverkant. turtle.rotate(90) innebar att skoldpaddas riktning ar roterad 90 gradermoturs. Detta for att kommande utritning av streck ska ske i vertikal riktning,da standardriktningen for hur skoldpadda gar ar fran vanster till hoger horison-tellt pa skarmen.

var axiom = "0";

var rules = [];

Page 32: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

FIGURER 31

var instructions = [];

var ar ett nyckelord som anvands for att skapa en variabel. De tre ovanstaenderaderna innebar att variabeln for axiomet i detta fall valts till 0 och att utveck-lingsregler och instruktioner ar listor.

rules["0"] = "1{[1}[{0}";

rules["1"] = "11";

rules["["] = "[";

rules["]"] = "]";

rules["{"] = "{";

rules["}"] = "}";

instructions["1"] = function() { turtle.moveWithPen(5); }

instructions["0"] = function() { turtle.moveWithPen(2); }

instructions["["] = function() { turtle.rotate(20); }

instructions["]"] = function() { turtle.rotate(-20); }

instructions["{"] = function() { turtle.pushPosition(); }

instructions["}"] = function() { turtle.popPosition(); }

Foljande rader avser utvecklingssregler for respektive symbol i strangarna samtde instruktioner skoldpadda far nar hela strangen ar utvecklad enligt reglerna.

Exemplet innebar att varje nolla foljer utvecklingsregeln 0 = 1{[1}[{0}och attvarje etta foljer utvecklingsregeln 1 = 11. Instruktionerna som skoldpadda farnar systemet ar utvecklat beskrivs darefter. Varje nolla innebar att skoldpaddaritar ett streck som ar tva pixlar langt. For varje etta ska skoldpadda istalletrita ett streck som ar fem pixlar langt. Skoldpadda kommer ocksa vid [ och ]att rotera 20 grader at hoger respektive vanster.

var system = axiom;

for (var u = 0; u < 5; u++)

{

var newSystem = "";

for (var i = 0; i < system.length; i++)

{

newSystem = newSystem + rules[system.charAt(i)];

}

system = newSystem;

}

Foljande rader avser axiomets utveckling enligt utvecklingsreglerna som tidigareangetts. u <5 innebar i detta fall att utveckling kommer att ske fem ganger.

Page 33: Matematisk illustrering av fraktalisk tillv axt och f .../menu/stand… · F or dina extraordin ara kunskaper inom matematik, programmering och peda-gogik vill jag framf ora ett stort

FIGURER 32

for (var i = 0; i < system.length; i++)

{

instructions[system.charAt(i)]();

}

Dessa rader omvandlar den utvecklade strangen som angivits tidigare i kodentill instruktioner for skoldpadda. Det ar dessa instruktioner som skoldpaddafoljer, vilket i sig innebar att en bild ritas pa skarmen. Skoldpadda kommer inteatt rita ut nagot utan att ha fatt instruktioner om vad den ska rita ut. Darmedar dessa rader de som oversatter det matematiska och programmatiska sprakettill illustrationer.

Rekursionsformler

function tree(l, it)

{

if (it == 0) return;

var d = 1.618;

var le = l/d;

turtle.pushPosition();

turtle.moveWithPen(le);

tree(le, it-1);

turtle.rotate(60);

tree(le/d, it-1);

turtle.rotate(-120)

tree(le/d, it-1);

turtle.popPosition();

}

turtle.x = totalWidth/2;

turtle.y = totalHeight;

turtle.rotate(90);

tree(300, 10);

Det som skapas i de forsta raderna i koden ar sjalva funktionen dopt “tree”samts dess avbrottsvillkor. Det ar denna funktion som sedan kommer att kallapa sig sjalv. Detta transformeras och sparas. Den form som funktionen treeskapar beskrivs med de efterfoljande atta raderna kod, vilket resulterar i ettantal streck samt anrop pa funktionen tree. I de sista fyra raderna kod valjsursprungslangden pa strecket som ritas ut, antalet iterationer samt skoldpaddasstartposition pa skarmen.