Fyllotaxia/fylotaxia je usporiadanie listov na stonke rastliny a fylotaktické špirály tvoria v prírode výraznú triedu vzorov. Samotné slovo pochádza z gréckeho phullon, čo znamená „list“ a taxíky, čo znamená „aranžmán“. Medzi základné kvetinové fylotaxické aranžmány patria:
1. Špirálová fylotaxia -
Pri špirálovej fylotaxii sa jednotlivé kvetinové orgány vytvárajú v pravidelnom časovom intervale s rovnakým divergentným uhlom. Divergentný uhol v kvete so špirálovou fylotaxiou je približne 137,5 stupňa, čo naznačuje vzor, ktorý nasleduje
Fibonacciho séria
Obrázok nižšie ukazuje špirálové fylotaxické vzory, ktoré majú špirálové vzory v smere aj proti smeru hodinových ručičiek.

Dôležité body, ktoré treba poznamenať:
- Fibonacciho série typicky opisujú špirály nachádzajúce sa v prírode. Vypočíta sa ako séria, kde súčet predchádzajúcich párov čísel je s nasledujúcim číslom v rade. Séria je 1 1 2 3 5 8 13 21 34 55 89 … .
- V skutočnosti existuje jedna sada špirál v smere hodinových ručičiek a jedna sada v protismere hodinových ručičiek.
- Kvetinové organové špirály sledujú množinu čitateľov a menovateľov Fibonacciho čísel (1/2 1/3 2/5 3/8 5/13 8/21 13/34 …). Čitateľ je počet, koľkokrát alebo otočení okolo osi sa dostanete späť do iniciačného začiatku. Menovateľ udáva počet orgánov iniciovaných počas ťahov. Preto 2/5 indikujú 2 otáčky okolo osi a 5 orgánov na návrat do pôvodného stavu.
- napr. - V borovici máme (2 3) (5 3) a (5 8) fylotaxy v capituli, nájdené páry sú (21 34) (55 34) (55 89) a (89 144) a na ananásoch so šesťhrannými šupinami sa nachádzajú trojičky (8 13 3 z 21) alebo 4 v závislosti od veľkosti 3 z 21) exempláre .
- Prevalencia Fibonacciho sekvencie vo fylotaxii sa často označuje ako „záhada fylotaxie“.
Ďalšie typy kvetinových fylotaxických usporiadaní sú:
2. Fylotaxia sviňa 3. Fylotaxia s jednoduchým svinutím 4. Fylotaxia s komplexom svinutia & 5. Nepravidelná fylotaxia
Formovanie vzoru: Zhrnutie
Krásne usporiadanie listov v niektorých rastlinách nazývaných fylotaxia sa riadi množstvom jemných matematických vzťahov. Napríklad kvietky v hlave slnečnice tvoria dve protiľahlé špirály: 55 z nich v smere hodinových ručičiek a 34 proti smeru hodinových ručičiek. Prekvapivo
- Tieto čísla sú po sebe idúce Fibonacciho čísla.
- Pomery alternatívnych Fibonacciho čísel sú dané konvergentmi k φ^(-2), kde φ je zlatý rez a hovorí sa, že merajú zlomok obratu medzi po sebe nasledujúcimi listami na stonke rastliny:
- napr.: 1/2 pre brest a lipu 1/3 pre buk a liesku 2/5 pre dub a jabloň 3/8 pre topoľ a ružu 5/13 pre vŕbu a mandle atď.
- Každý nový list na stonke rastliny je umiestnený v určitom uhle k predchádzajúcemu a tento uhol je medzi listami konštantný: zvyčajne asi 137,5 stupňa.
To znamená, že ak sa pozriete na rastlinu zhora a zmeriate uhol vytvorený medzi čiarou vedenou od stonky k listu a zodpovedajúcou čiarou pre nasledujúci list, zistíte, že vo všeobecnosti existuje pevný uhol nazývaný uhol divergencie. Tu nás zaujíma špirálová fylotaxia a pomocou korytnačej grafiky vytvoríme vzor špirálovej fylotaxie v pytóne.
Navrhovanie kódexu
- Zakódujeme dve funkcie, jednu na kreslenie fylotaxického vzoru a druhú na kreslenie okvetných lístkov.
- Okvetné lístky je potrebné nakresliť až po dokončení vzoru fylotaxie. Preto zavoláme funkciu drawPetal() zvnútra funkcie drawPhyllPattern() s poslednými súradnicami x & y navštívenými po nakreslení vzoru fylotaxie.
- Funkcia drawPetal() nakreslí okvetné lístky s funkciami a vlastnosťami korytnačky Programovanie korytnačiek .
Na kódovanie vzoru fylotaxie musíme postupovať podľa týchto rovníc:
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)
Pseudokód: Vzor fylotaxie
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
výstup:
Vzory fylotaxie.

programová slučka javaVytvoriť kvíz