Python | Alfombra Sierpinski

La Alfombra de Sierpinski es una curva fractal plana, es decir, una curva que es homeomorfa a un subespacio del plano. Fue descrito por primera vez por Waclaw Sierpinski en 1916. En este tipo de fractales, una forma se divide en una copia más pequeña de sí misma, eliminando algunas de las nuevas copias y dejando las copias restantes en un orden específico para formar nuevas formas de fractales.

¿Cómo está construido?
La alfombra Sierpinski comienza con un cuadrado. Este cuadrado se divide en nueve partes iguales. El cuadrado más pequeño del centro se elimina del cuadrado más grande original. Las piezas cuadradas restantes se dividen nuevamente en nueve partes iguales y se elimina el cuadrado más central de cada cuadrado. Al repetir este proceso, se observa un hermoso patrón de Alfombra Sierpinski.

Supongamos que comenzamos con un cuadrado negro.

Lo dividimos en 9 partes iguales y quitamos el cuadrado central.

Al repetir más el proceso, da como resultado algo como esto.

Podemos visualizar este fenómeno en detalle en este video .

Veamos cómo se ve su código:

# importing necessary modules
import numpy as np
from PIL import Image
  
# total number of times the process will be repeated
total = 7
  
# size of the image
size = 3**total
  
# creating an image
square = np.empty([size, size, 3], dtype = np.uint8)
color = np.array([255, 255, 255], dtype = np.uint8)
  
# filling it black
square.fill(0)
  
for i in range(0, total + 1):
    stepdown = 3**(total - i)
    for x in range(0, 3**i):
          
        # checking for the centremost square
        if x % 3 == 1:
            for y in range(0, 3**i):
                if y % 3 == 1:
                      
                    # changing its color
                    square[y * stepdown:(y + 1)*stepdown, x * stepdown:(x + 1)*stepdown] = color
  
# saving the image produced
save_file = "sierpinski.jpg"
Image.fromarray(square).save(save_file)
  
# displaying it in console
i = Image.open("sierpinski.jpg")
i.show()

Producción :

Esta es la Alfombra de Sierpinski después de 7 repeticiones. Puede obtener su código para otros idiomas en rosettacode .

Publicación traducida automáticamente

Artículo escrito por Pulkit_Singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *