🔼 Как создать треугольник Серпинского в Питоне | Подробная инструкция 2021
Чтобы создать треугольник Серпинского в Python, вы можете использовать рекурсивную функцию, которая будет разделять треугольник на более мелкие треугольники и рисовать их.
# Импорт библиотеки turtle
import turtle
# Функция для рисования треугольника Серпинского
def draw_sierpinski(length, depth):
if depth == 0:
# Если достигнута базовая глубина, рисуем треугольник
for _ in range(3):
turtle.forward(length)
turtle.left(120)
else:
# Иначе вызываем рекурсивно функцию для каждого из трех более мелких треугольников
draw_sierpinski(length / 2, depth - 1)
turtle.forward(length / 2)
draw_sierpinski(length / 2, depth - 1)
turtle.backward(length / 2)
turtle.left(60)
turtle.forward(length / 2)
turtle.right(60)
draw_sierpinski(length / 2, depth - 1)
turtle.left(60)
turtle.backward(length / 2)
turtle.right(60)
# Инициализация черепахи
turtle.speed(0)
turtle.penup()
turtle.goto(-200, -200)
turtle.pendown()
# Вызов функции для рисования треугольника Серпинского
draw_sierpinski(400, 3)
# Завершение программы
turtle.done()
Детальный ответ
Как сделать треугольник Серпинского в Python
Треугольник Серпинского - это фрактал, состоящий из бесконечного числа треугольников, каждый из которых является уменьшенной копией исходного треугольника.
Для создания треугольника Серпинского в Python используйте следующий код:
import turtle
def draw_sierpinski(length, depth):
if depth == 0:
for _ in range(3):
turtle.forward(length)
turtle.left(120)
else:
draw_sierpinski(length / 2, depth - 1)
turtle.forward(length / 2)
draw_sierpinski(length / 2, depth - 1)
turtle.backward(length / 2)
turtle.left(60)
turtle.forward(length / 2)
turtle.right(60)
draw_sierpinski(length / 2, depth - 1)
turtle.left(60)
turtle.backward(length / 2)
turtle.right(60)
def main():
turtle.speed(0)
turtle.penup()
turtle.goto(-200, -200)
turtle.pendown()
length = 400
depth = 4
draw_sierpinski(length, depth)
turtle.mainloop()
main()
В данном коде используется библиотека Turtle для рисования треугольника Серпинского. Функция draw_sierpinski
рекурсивно рисует треугольник Серпинского заданной глубины. Параметр length
определяет длину стороны изначального треугольника, а depth
- количество уровней глубины.
После определения функции draw_sierpinski
, мы вызываем функцию main
, где происходит настройка окна Turtle, установка начальной позиции и вызов функции draw_sierpinski
с заданными значениями length
и depth
.
Запустив данный код, вы увидите, как на экране будет постепенно рисоваться треугольник Серпинского заданной глубины.