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 Hilbert

També 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.
Hem afegit, a més, una serie de marcadors que indiquen:

 

Programació

 

Per a aquest procés, no es comença a iterar des d'un segment, sinó des de tres segments però una sola tortuga que fa tot el camí:

Així, obtenim quatre conjunts sobre les quals podrem tornar a aplicar la funció. Però si us hi fixeu, hi ha uns segments suplementaris que fan de connectors entre conjunts iterables.

Aquests conjunts connectors són el que complica aquesta pràctica.

Aquesta pràctica és diferent a les altres tres explicades. Aquesta vegada, no totes les tortugues fan el mateix camí. Sinó que hi ha dos categories de tortugues. Unes fan una camí com el que es veu representat a la imatge de la iteració 1 però les altres, fan de connectors, simplement fan un segment de mida igual a un dels costats del camí de les primeres.

Per a dibuixar la corba de Hilbert, quan una tortuga fa el seu camí, alhora, ha d'anar no només creant tortugues per allà on passa i on toca, sinó que les ha de classificar (indicar quina classe de tortuga és per tal de fer, després, el camí correcte) i les ha de col·locar en la posició correcte per a que al iterar la funció facin el camí que els hi pertoca en l'orientació, posició que els hi pertoca.

Si us hi fixeu, notareu que la corba no comença en el mateix punt de la pantalla en les dos imatges que hem mostrat. En la imatge de la iteració 2, la corba comença més aprop de la cantonada inferior esquerre que no pas la corba de la imatge de la iteració 1. El mateix passa amb el final de la corba. A això ens referim quan volem dir que s'han de col·locar les tortugues en la posició adequada. Quan una tortuga fa el camí que li pertoca ha d'anar repartint per tota la imatge tortugues d'un tipus o d'un altre segons correspongui per tal de deixar preparades totes les tortugues que faran la seva funció en la següent iteració.

Les instruccions que rep el programa per a crear aquestes imatges són:

globals [mida iteracions]

 

breed [ms m]

breed [primeres primera]

breed [ls l]

 

to neteja

clear-all

create-primeres 1

ask primeres [

setxy

min-pxcor + max-pxcor / 2

min-pycor + max-pycor / 2

pen-down

hide-turtle]

set mida max-pxcor

set iteracions 0

end

 

to itera

clear-drawing

ask turtles [ if breed = primeres [camim]

if breed = ms [camim]

if breed = ls [camil] ]

ask turtles [

hide-turtle]

set mida mida / 2

set iteracions iteracions + 1

end

 

to camim

hatch-ms 1 [

pen-up

fd mida / 4

lt 90

fd mida / 4

lt 180

pen-down]

hatch-ls 1 [

pen-up

fd mida / 4

lt 90

fd mida / 4

rt 90

pen-down]

fd mida

hatch-ms 1 [

pen-up

lt 90

fd mida / 4

lt 90

fd mida / 4

lt 180

pen-down]

rt 90

fd mida

hatch-ls 1 [

pen-up

lt 180

fd mida / 4

lt 90

fd mida / 4

rt 90

pen-down]

hatch-ms 1 [

pen-up

lt 180

fd mida / 4

lt 90

fd mida / 4

lt 180

pen-down]

rt 90

hatch-ls 1 [

pen-up

fd mida / 4

lt 90

fd mida / 4

rt 90

pen-down]

fd mida

hatch-ms 1 [

pen-up

fd mida / 4

lt 90

fd mida / 4

lt 180

pen-down]

die

end

 

 

to camil

hatch-ls 1 [

pen-up

fd mida / 4

lt 90

fd mida / 4

rt 90

pen-down]

fd mida

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 :::::::