Python | Dywan serpentynowy

| | | | |

Jak to działa?
Dywan Sierpińskiego zaczyna się od kwadratu. Ten kwadrat jest podzielony na dziewięć równych części. Najmniejszy mniejszy kwadrat jest usuwany z pierwotnego większego kwadratu. Następnie pozostałe kwadraty ponownie dzieli się na dziewięć równych części, a najbardziej centralny kwadrat z każdego kwadratu jest usuwany. Kiedy ten proces się powtarza, obserwuje się piękny wzór dywanu Sierpińskiego.

Załóżmy, że zaczynamy od czarnego kwadratu.

Podziel go na 9 równych części i usuń centralny kwadrat.

Powtarzanie procesu prowadzi dalej do czegoś takiego.

Możemy szczegółowo zwizualizować to zjawisko w tym wideo .

Zobaczmy, jak wygląda jego kod:


# importuj wymagane moduły

importuj numpy as np

from PIL import Obraz


# całkowita liczba powtórzeń procesu

łącznie = 7


# rozmiar obrazu

rozmiar = 3 * * łącznie


# utwórz obraz

square = np.empty ([rozmiar, rozmiar, 3 ], dtype = np.uint8)

color = np.array ([ 255 , 255 , 255 ], dtype = np. uint8)


# wypełniając to czarnym

square.fill ( 0 )

< br>

for i in zakres ( 0 , łącznie + 1 ):

stepdown = 3 * * (łącznie - i)

for x w zakresie ( 0 , 3 * * i):

# sprawdzanie centralnego kwadratu

if x % 3 = = 1 :

for y w zakresie ( 0 , 3 * * i):

if y % 3 = = 1 :

# zmień kolor

square [y * stepdown: (y + 1 ) * stepdown, x * stepdown: (x + 1 ) * stepdown] = color


# zapisz wynikowy obraz

save_file = "sierpinski.jpg"

Image.fromarray (kwadrat) .save (zapisz _file)


# wyświetl w konsoli

i = Obraz. open ( " sierpinski.jpg " )

i.show ()

Wyjście:

To jest dywan Sierpińskiego po 7 powtórzeniach. Jego kod dla innych języków można pobrać z rosettacode .

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method