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É

La Corba de Koch

Aquest fractal del que ja hem explicat la seva construcció i el càlcul de la seva dimensió fraccionària s'ha reproduit aquí amb el llenguatge de programació Logo i utilitzant un algorisme sistema-L.

Per fer funcionar l'applet cal tocar primer lloc el botó "Neteja" .

Seguidament cada cop que es toca el botó "Itera una vegada" és realitza una iteració les quals es poden fer tantes vegades com la capacitat de l'ordinador permeti.

 

 

El floc de neu de Koch

De la mateixa manera s'ha programat el floc de neu de Koch

 

Hem afegit, a més, una serie de marcadors que indiquen:

Programació

Per a cada marcador hi ha una fórmula o una variable que calcula el que volem expressar, així:
El marcador de les iteracions indica el valor d'una variable que hem inventat per tal de contar cada vegada que es duu a terme la instrucció d'iterar ( cada vegada que premem el botó Itera una vegada. El valor inicial és zero i anirà augmentant un punt cada vegada que premem el botó (que iterem).
El marcador de la longitud, indica el valor d'una fórmula: que varia segons varia la variable iteracions.
El nº de segments indica el nombre de tortugues presents en la pantalla ja que cada tortuga dibuixa un segment, i es va renovant constantment cada vegada que aquest nombre varia.

El procediment de la pràctica és que cada “tortuga” col·locada a l'extrem esquerre d'un segment i orientada paral·lelament al segment, dibuixa una corba com la de la iteració 1. La mida de la corba varia segons la iteració, cada vegada és un terç més petita.
A més a més, cada tortuga prepara el terreny per tal de que es pugui realitzar la següent iteració, és a dir, deixa una tortuga “filla” a l'extrem esquerre de cada segment de manera que quan tornem a iterar aquesta tortuga faci el camí en una mida més reduïda i dibuixi la part de la corba corresponent al seu segment anterior i a la vegada, deixi tortugues preparades per a la següent iteració.

Les instruccions donades al programa per a aconseguir aquestes imatges encadenades són:

globals [iteracio mida]

to neteja
ca
set iteracio 0
create-turtles 1
ask turtles
[setxy min-pxcor
min-pycor + 5
set heading 90
set color green
set mida max-pxcor * 2
pen-down
fd mida
lt 180
fd mida
lt 180
hide-turtle ]
end

to cami
if iteracio = 6 [stop]
clear-drawing
set mida (mida / 3)
ask turtles
[itera
hide-turtle]
set iteracio iteracio + 1
end

to itera
hatch 1 [ ]
fd mida
lt 60
hatch 1 [ ]
fd mida
rt 120
hatch 1 [ ]
fd mida
lt 60
fd mida
lt 180
fd mida
lt 180
end

Utilitzen variables globals com són la iteracio que és un comptador de les vegades que s'ha fet cami o la mida que fem servir per a variar les distàncies segons augmenten les iteracions.

Per a la pràctica del Floc de Neu hem de iterar la funció de la corba de Koch sobre els tres costats d'un triangle equilàter.

De manera que necessitem tres segments inicials disposats de manera que formin un triangle equilàter.


Les instruccions que rep el programa per a crear el el floc de neu són:

globals [iteracio mida]

to neteja
ca ;; esborra tot
set iteracio 0
create-turtles 1
ask turtles
[ setxy min-pxcor + 25
min-pycor + 50
set heading 30
set color green
pen-down
set mida 130
fd mida
rt 120
hatch 1 []
fd mida
rt 120
hatch 1 []
fd mida
rt 120 ]
ask turtles [hide-turtle]
end

to cami
clear-drawing
set mida (mida / 3)
ask turtles
[pen-down
itera
hide-turtle]
set iteracio iteracio + 1
end

to itera
hatch 1 [ ]
fd mida
lt 60
hatch 1 [ ]
fd mida
rt 120
hatch 1 [ ]
fd mida
lt 60
fd mida
lt 180
fd mida
lt 180
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 :::::::