Treball de recerca realitzat a l'IES Arnau Cadell el curs 2007-2008.
Guardonat amb el segon premi per la FME de l'UPC en cinquena l'edició del PREMI POINCARÉ

Simulació de l'estructura d' un arbre

Aquest és un programa propi, creat amb l'interprete del llenguatge Logo, NetLogo, preparat per a representar, dins d'unes limitacions, una figura el més propera possible a l'estructura d'un arbre.

Podeu utilitzar l'aplicació prement el botó per preparar el programa i tot seguit el botó Per tal de fer creixer la figura.

Podem variar fàcilment diferents aspectes de la figura:

1. La mida del tronc

2. El nombre d'iteracions (el nombre de vegades que es repeteix la separació en branques)

3. El nombre de branques

4. La relació de mida entre les primeres branques i el tronc

5. L'angle d'obertura total de les branques.

6. Aleatorietat de mides i angles: Indica el grau d'aleatorietat, dins una límits, de la figura tant pel que fa a mides com pel que fa a angles.

 

La dimensió en aquest programa es calcula segons el nombre de branques i la variació de la mida de les branques.

Programació

El mètode fet servir en aquest programa consisteix en una instrucció que es crida a ella mateixa. És a dir, la tortuga inicial, que es troba a l'inici inferior del tronc, avança la mida inicial i reparteix tortugues allà on toca fer un branca que fan el mateix procediment en una altre escala però dins mateix de la instrucció. Així, la figura no es separa en diferents iteracions sinó que les fabrica totes de cop, hi ha una sola imatge per cada valor. Hi ha un comptador que atura l'execució de la instrucció quan arriba a un límit, en el nostre cas, el nombre d'iteracions.

En el món de la programació, a quest mètode de auto executar-se, s'anomena recursivitat .

Les instruccions que rep el programa són:

to INICIA

clear-all

create-turtles 1

ask turtles [ setxy 0 min-pycor + 5

hide-turtle]

end

 

to CREIX

pen-down

CAMI Mida_del_tronc 0

end

 

to CAMI [mida comptador]

if comptador <= Numero_d'iteracions [

fd mida * (1 + (random (Aleatorietat_mides_angles * 20)) / 60 )

lt (Angle_d'obertura_de_les_branques / 2 )* (1 + (random (Aleatorietat_mides_angles * 20)) / 80 )

repeat Numero_de_branques - 1 [

hatch 1 [CAMI mida * Variacio_de_la_mida_de_les_branques comptador + 1]

rt ( Angle_d'obertura_de_les_branques / ( Numero_de_branques - 1 ))* (1 + (random (Aleatorietat_mides_angles * 20)) / 80 ) ]

CAMI mida * Variacio_de_la_mida_de_les_branques comptador + 1

die]

end

::::::: autora:  Marina Brasó Vives  :::::::::::::: tutor: Ricard Oromí Bartolí ::::::::::::::  Octubre 2007  :::::::::::::::::::::::::::::::
:::::::: Comprovat el seu funcionament amb Mozilla Firefox ::::::::::::::::::::::::::: Cal tenir instal·lat el plugin de Java :::::::