Python | Serpine vloerkleed

| | | | |

Hoe werkt het?
Het Sierpinski-tapijt begint met een vierkant. Dit vierkant is verdeeld in negen gelijke delen. Het kleinste kleinere vierkant wordt verwijderd uit het oorspronkelijke grotere vierkant. Vervolgens worden de resterende vierkanten opnieuw verdeeld in negen gelijke delen en wordt het meest centrale vierkant van elk vierkant verwijderd. Wanneer dit proces wordt herhaald, wordt een prachtig Sierpinski-tapijtpatroon waargenomen.

Stel dat we beginnen met een zwart vierkant.

Verdeel het in 9 gelijke delen en verwijder het centrale vierkant.

Herhaling van het proces leidt tot verdere naar iets als dit.

We kunnen dit fenomeen in detail visualiseren in deze video .

Laten we eens kijken hoe de code eruit ziet:


# importeer vereiste modules

import numpy as np

from PIL import Afbeelding


# totaal aantal procesherhalingen

totaal = 7


# afbeeldingsgrootte

size = 3 * * totaal


# maak afbeelding

vierkant = np.empty ([size, size, 3 ], dtype = np.uint8)

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


# vul dit met zwart

square.fill ( 0 )

< br>

voor i in bereik ( 0 , totaal + 1 ):

stepdown = 3 * * (totaal - i)

voor x in bereik ( 0 , 3 * * i):

# check het centrale vierkant

if x % 3 = = 1 :

voor y in bereik ( 0 , 3 * * i):

if y % 3 = = 1 :

# verander je kleur

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


# sla de resulterende afbeelding op

save_file = "sierpinski.jpg"

Image.fromarray (vierkant) .save (opslaan _file)


# toon het in de console

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

i.show ()

Uitvoer:

Dit is een Sierpinski-tapijt na 7 herhalingen. Je kunt de code voor andere talen vinden op 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