Найти в Дзене

Фрактал Серпинского. Простое объяснение.Реализация на python.

Здравствуйте! В математике есть такой довольно сложный, но простой в объяснении и реализации фрактал. По названию, вы поняли, что имя ему Фрактал Серпинского.

Не буду вас томить, сразу перейдем к объяснению его построения.

На плоскости мысленно поставьте 3 точки. На самом деле не важно где вы их поставите, но лучше поставить их в форме треугольника т.е. точки должны быть вершинами треугольника.

Теперь надо поставить еще одну точку, неважно где (для удобства восприятия сделаю ее зеленой).

-2

Шаг 1.Теперь нужно подкинуть игральную кость (можно мысленно, за нас все равно будет это делать программа). Если выпадет 1 или 2 то идем в левую нижнюю точку ровно на половину. То же самое и с числами 3 или 4, только в этот раз идем полпути в верхнюю точку. Аналогично с 5 или 6 - идем полпути в сторону нижней правой точки.

Мне выпало 4, поэтому я пошел в сторону верхней точки на половину пути. Линия нарисована для визуализации половины пути, в программе пути рисовать не будем.
Мне выпало 4, поэтому я пошел в сторону верхней точки на половину пути. Линия нарисована для визуализации половины пути, в программе пути рисовать не будем.

Шаг 2. Теперь это наша новая точка. Вернемся к шагу 1, но уже будем начинать путь с нашей новой точки.

Я сделал примерно 50 шагов. И уже начала вырисовываться картина.
Я сделал примерно 50 шагов. И уже начала вырисовываться картина.

Я старался делать все максильмано точно. Но все таки терпения на хотя бы 1000 шагов у меня не хватит. Для этого проще написать программу. Естественно я выбрал python. Он прост, функционален и удобен.

Вот чторисует моя программа. При идеально поставленных точках
Вот чторисует моя программа. При идеально поставленных точках

P.S.

Мой код. Критика приветствуется!
Мой код. Критика приветствуется!
Вот, когда точки поставлены криво.
Вот, когда точки поставлены криво.

На этом все. Если хотите подробное описание работы моего кода, напишите в комментариях. Если запросов будет много, я напишу отдельную статью.

Так же жду конструктивную критику!

P.S. Способ создания фрактала Серпинского довольно много. Так же напишите в комментариях, я обязательно все прочитаю.