El Triángulo de Sierpinski en Winlogo



To triangle
pu setpos [-100 -100]
pd setpos [0 100]
setpos [100 100]
setpos [-100 -100]
end


Configurar el triángulo

Configura el triángulo inicial usando las coordenadas especificadas en los corchetes.

Nota que winlogo usa una cuadrícula de cuatro cuadrantes
 

to setcord
make "X1 0
make "X2 100
make "X3 -100
make "Y1 100
make "Y2 -100
make "Y3 -100
make "X4 0
make "X4 0
end

Las coordenadas

Establece las variables de X1 a X4 y de Y1 a Y4.

Ten en cuenta que las variables de X1 a X3 y de Y1 a Y3 se relacionan con las
coordenadas de las esquinas del triangulo.

to corner1
make "X4 sum :X1 :X4
make "Y4 sum :Y1 :Y4
make "X4 :X4/2
make "Y4 :Y4/2
end

La parte matemática.

Los 3 procedimientos calculan el punto medio entre la esquina seleccionada al azar por el procedimiento de Sierpinski y el último punto trazado en la pantalla.

Las coordenadas del nuevo punto luego se convierten en X4 y Y4. Estas se utilizan en el siguiente ciclo del programa.

to corner2
make "X4 sum :X2 :X4
make "Y4 sum :Y2 :Y4
make "X4 :X4/2
make "Y4 :Y4/2
end

to corner3
make "X4 sum :X3 :X4
make "Y4 sum :Y3 :Y4
make "X4 :X4/2
make "Y4 :Y4/2
end

to setsteps :iteration
make "a 1
make "c :iteration
end

¿Cuántas veces?

Esto necesita una entrada al
programa de pasos establecidos (número).

Este número se convierte en el número de ciclos que el programa repite, es decir, si escribimos setsteps 100, el programa realizará un ciclo 100 veces.

to sierpinski
make "b random 3
make "b :b+1
test :b=1
iftrue [corner1]
test :b=2
iftrue [corner2]
test :b=3
iftrue [corner3]
setdot se :X4 :Y4 1
make "a :a+1
test :a=:c
iftrue [stop]
sierpinski
end

La parte principal del programa.

Se crea un número aleatorio a partir de 1 a 3. Esto selecciona qué esquina
se utilizará para trazar el punto medio.

Dependiendo de qué número es seleccionado el programa llamará uno de los procedimientos corner1,
corner2 o corner3. Una vez que se han calculado las coordenadas para X4 y Y4 el nuevo punto será trazado en la pantalla.

La siguiente parte cuenta cuántos ciclos (iteraciones) ha terminado el programa. Si no ha llegado al número que seleccionamos en setsteps, se ejecutará el programa
de nuevo hasta que tenga
completadas todas las iteraciones.

Instrucciones para usar el programa

Escribe el programa como se indicó anteriormente. Una vez que hayas escrito el programa, deberás ejecutar las siguientes instrucciones
  • hideturtle
  • triangle
  • setcord
  • setseps "xxx"
  • sierpinski
nota: xxx es el número que tú escribes

Esto operará el programa por ti.