Filotaksija/filotaksija je raspored listova na stabljici biljke, a filotaktičke spirale tvore posebnu klasu uzoraka u prirodi. Sama riječ dolazi od grčkog phullon što znači 'list' i taxis što znači 'aranžman'. Osnovni cvjetni filotaksički aranžmani uključuju:
1. Spiralna filotaksija -
U spiralnoj filotaksiji pojedinačni cvjetni organi nastaju u pravilnom vremenskom intervalu pod istim divergentnim kutom. Kut divergentnosti u cvijetu sa spiralnom filotaksijom iznosi približno 137,5 stupnjeva, što je pokazatelj uzorka koji slijedi
Fibonaccijev niz
.Slika ispod prikazuje spiralne uzorke filotaksije koji imaju spiralne uzorke u smjeru kazaljke na satu i suprotno od njega.

Važne točke koje treba imati na umu:
- Fibonaccijevi nizovi obično opisuju spirale koje se nalaze u prirodi. Izračunava se kao niz gdje se prethodni par brojeva zbraja sa sljedećim brojem u nizu. Serija je 1 1 2 3 5 8 13 21 34 55 89 … .
- Zapravo postoji jedan set spirala u smjeru kazaljke na satu i jedan set u suprotnom smjeru.
- Spirale cvjetnih organa slijede niz brojnika i nazivnika skupa pomaknutih Fibonaccijevih brojeva (1/2 1/3 2/5 3/8 5/13 8/21 13/34 …). Brojnik je broj puta ili okretaja oko osi da se vratimo na početno ishodište. Nazivnik označava broj organa pokrenutih tijekom okreta. Stoga bi 2/5 značilo 2 okreta oko osi i 5 organa za povratak u ishodište.
- npr. - Kod bora imamo (2 3) (5 3) i (5 8) filotakse u kapitulima pronađeni parovi su (21 34) (55 34) (55 89) i (89 144), a kod ananasa sa šesterokutnim ljuskama nalaze se trojke (8 13 21) ili (13 21 34) ovisno o na veličinu primjeraka .
- Prevalencija Fibonaccijevog niza u filotaksiji često se naziva 'misterij filotaksije'.
Ostale vrste cvjetnih filotaksičnih aranžmana su:
2. Phyllotaxis s pršinicama 3. Phyllotaxis s jednostavnim pršinicama 4. Phyllotaxis s složenim pršinicama i 5. Nepravilna filotaksija
Formiranje uzorka : sažetak
Prekrasan raspored lišća kod nekih biljaka zvanih filotaksija pokorava se brojnim suptilnim matematičkim odnosima. Na primjer, cvjetići u glavi suncokreta tvore dvije suprotno usmjerene spirale: njih 55 u smjeru kazaljke na satu i 34 u suprotnom smjeru. Začudo
- Ovi brojevi su uzastopni Fibonaccijevi brojevi.
- Omjeri alternativnih Fibonaccijevih brojeva dani su konvergentima za φ^(-2) gdje je φ zlatni rez i za njih se kaže da mjere udio okreta između uzastopnih listova na stabljici biljke:
- npr.: 1/2 za brijest i lipu 1/3 za bukvu i lijesku 2/5 za hrast i jabuku 3/8 za topolu i ružu 5/13 za vrbu i badem itd.
- Svaki novi list na stabljici biljke postavljen je pod određenim kutom u odnosu na prethodni i taj je kut između listova konstantan: obično oko 137,5 stupnjeva.
To jest, ako pogledate odozgo na biljku i izmjerite kut formiran između linije povučene od stabljike do lista i odgovarajuće linije za sljedeći list, otkrit ćete da općenito postoji fiksni kut koji se zove kut divergencije. Ovdje nas zanima spiralna filotaksija i mi ćemo kodirati za formiranje spiralnog filotaksijskog uzorka u pythonu koristeći kornjačinu grafiku.
Dizajniranje koda
- Kodirat ćemo dvije funkcije, jednu za crtanje uzorka filotaksije, a drugu za crtanje latica.
- Latice je potrebno nacrtati tek nakon što se dovrši uzorak filotaksije. Stoga ćemo pozvati funkciju drawPetal() iz funkcije drawPhyllPattern() s posljednjim koordinatama x & y koje se posjećuju nakon crtanja uzorka filotaksije.
- Funkcija drawPetal() nacrtat će latice s referencama na funkcije kornjače i značajke Turtle programiranje .
Za kodiranje uzorka filotaksije moramo slijediti ove jednadžbe:
x = r*cos(θ)
y = r*sin(θ)
r θ can also vary - so the to form phyllotactic pattern we substitutethe cartesian form
by polar form:
r = c*sqrt(n)
θ = n*137.508°

Reduces the problem to optimal packing on a disc so
r = c*sqrt(n) is from the area of the circle
Area = πr² and n fills the Area in some units
c1 * n/π = r² c is 1/sqrt(c1/π)
So r = some constant c * sqrt(n)
Pseudokod : Uzorak filotaksije
IMPORT MODULES ( MATH TURTLE )Python Pattern A
FUNCTION - DrawPhyllotaxisPattern( turtle t length petalstart angle = 137.508 size cspread)
turtleColor('Black')
FillColor(''Orange')
Convert angle to radians (Φ)
initialize ( xcenterycenter ) = ( 00 )
Drawing the Pattern Starts:
For n in Range ( 0t ):
r = cspread * sqrt(n)
θ = n * Φ
x = r * cos(θ) + xcenter
y = r * sin(θ) + ycenter
TURTLE POSITION(xy)
START DRAWING():
if Drawing pattern ends:
DrawFlowerPetals()
FUNCTION - DrawFlowerPetals(Turtle x coordinate y coordinate)
DRAW using Turtle methods
Create Turtle = gfg
Call DrawPhyllotaxisPattern( gfg t length petalstart angle = 137.508 size cspread)
END
import math import turtle def drawPhyllPattern(turtle t petalstart angle = 137.508 size = 2 cspread = 4 ): '''print a pattern of circles using spiral phyllotactic data''' # initialize position # turtle.pen(outline=1 pencolor='black' fillcolor='orange') turtle.color('black') turtle.fillcolor('orange') phi = angle * ( math.pi / 180.0 ) #we convert to radian xcenter = 0.0 ycenter = 0.0 # for loops iterate in this case from the first value until < 4 so for n in range (0 t): r = cspread * math.sqrt(n) theta = n * phi x = r * math.cos(theta) + xcenter y = r * math.sin(theta) + ycenter # move the turtle to that position and draw turtle.up() turtle.setpos(x y) turtle.down() # orient the turtle correctly turtle.setheading(n * angle) if n > petalstart-1: turtle.color('yellow') drawPetal(turtle x y) else: turtle.stamp() def drawPetal(turtle x y ): turtle.penup() turtle.goto(x y) turtle.pendown() turtle.color('black') turtle.fillcolor('yellow') turtle.begin_fill() turtle.right(20) turtle.forward(70) turtle.left(40) turtle.forward(70) turtle.left(140) turtle.forward(70) turtle.left(40) turtle.forward(70) turtle.penup() turtle.end_fill() # this is needed to complete the last petal gfg = turtle.Turtle() gfg.shape('turtle') gfg.speed(0) # make the turtle go as fast as possible drawPhyllPattern(gfg 200 160 137.508 ) gfg.penup() gfg.forward(1000)
Python Pattern B import math import turtle def drawPhyllotacticPattern( t petalstart angle = 137.508 size = 2 cspread = 4 ): '''print a pattern of circles using spiral phyllotactic data''' # initialize position turtle.pen(outline=1 pencolor='black' fillcolor='orange') # turtle.color('orange') phi = angle * ( math.pi / 180.0 ) xcenter = 0.0 ycenter = 0.0 # for loops iterate in this case from the first value until < 4 so for n in range (0 t): r = cspread * math.sqrt(n) theta = n * phi x = r * math.cos(theta) + xcenter y = r * math.sin(theta) + ycenter # move the turtle to that position and draw turtle.up() turtle.setpos(x y) turtle.down() # orient the turtle correctly turtle.setheading(n * angle) if n > petalstart-1: #turtle.color('yellow') drawPetal(x y) else: turtle.stamp() def drawPetal( x y ): turtle.up() turtle.setpos(x y) turtle.down() turtle.begin_fill() #turtle.fill(True) turtle.pen(outline=1 pencolor='black' fillcolor='yellow') turtle.right(20) turtle.forward(100) turtle.left(40) turtle.forward(100) turtle.left(140) turtle.forward(100) turtle.left(40) turtle.forward(100) turtle.up() turtle.end_fill() # this is needed to complete the last petal turtle.shape('turtle') turtle.speed(0) # make the turtle go as fast as possible drawPhyllotacticPattern( 200 160 137.508 4 10 ) turtle.exitonclick() # lets you x out of the window when outside of idle
Izlaz:
Uzorci filotaksije.

Napravi kviz