Питон | Ковер Серпино

| | | | |

Как это работает?
Ковер Серпинского начинается с квадрата. Этот квадрат разделен на девять равных частей. Наименьший меньший квадрат удаляется из исходного большего квадрата. Затем оставшиеся квадраты снова делятся на девять равных частей, и из каждого квадрата удаляется самый центральный квадрат. Когда этот процесс повторяется, наблюдается красивый узор ковра Серпинского.

Предположим, мы начинаем с черного квадрата.

Разделите его на 9 равных частей и удалите центральный квадрат.

Повторение процесса ведет дальше примерно так.

Мы можем детально визуализировать это явление на этом видео .

Посмотрим, как выглядит его код:


# импортировать необходимые модули

import numpy as np

from PIL import Image


# общее количество повторений процесса

всего = 7


# размер изображения

размер = 3 * * всего


# создать изображение

квадрат = np.empty ([size, size, 3 ], dtype = np.uint8)

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


# заливаем черным цветом

Square.fill ( 0 )

< br>

for i in диапазон ( 0 , total + 1 ):

stepdown = 3 * * (всего - i)

for x in range ( 0 , 3 * * i):

# проверка центрального квадрата

if x % 3 = = 1 :

for y in range ( 0 , 3 * * i):

if y % 3 = = 1 :

# измените цвет

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


# сохранить полученное изображение

save_file = "sierpinski.jpg"

Image.fromarray (квадрат) .save (сохранить _file)


# отобразить его в консоли

i = Изображение. open ( " sierpinski.jpg " )

i.show()

Вывод:

Это ковер Серпинского после 7 повторений. Вы можете получить его код для других языков ‚Äã‚Äãв 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