Треугольник серпинского алгоритм построения

Фрактал Серпинского

Треугольник серпинского алгоритм построения

Построить фрактал треугольник Серпинского

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

Преимущество использования рекурсии очевидно — без рекурсии построение такого рисунка состоящего более чем из шести уровней весьма проблематично, а рекурсия позволяет увеличивать количество уровней, не ограничиваясь минимальными размерами самого нижнего уровня. Например, с помощью этой программы можно увеличить количество уровней до пятнадцати при этом будет ощутима только некоторая задержка при выводе изображения на экран, а вот без рекурсии такой рисунок построить будет практически невозможно, так как изображение будет состоять более чем из тридцати одной тысячи треугольников.

Алгоритм построения треугольника Серпинского довольно прост:

1) строится большой внешний треугольник;
2) строится треугольник, получающийся при соединении середин сторон большого треугольника;
3) строятся треугольники, получающиеся аналогичнo.
Изображение состоит из однотипных элементов, связанных между собой зависимостью каждого следующего элемента от координат предыдущего.

Видео:Что скрывает фрактальный треугольник? // Vital MathСкачать

Что скрывает фрактальный треугольник? // Vital Math

Треугольник Серпинского и треугольник Паскаля

Что это?

Треугольник Серпинского

Треугольник Серпинского — один из известнейших фракталов, его построение — одна из первых лабораторных работ на рекурсию по соответствующим дисциплинам во многих ВУЗах. Выглядит фрактал следующим образом:
Треугольник серпинского алгоритм построения

Треугольник Паскаля

Треугольник Паскаля — бесконечная таблица биномиальных коэффициентов, имеющая треугольную форму. В этом треугольнике на вершине и по бокам стоят единицы. Каждое число равно сумме двух расположенных над ним чисел. Строки треугольника симметричны относительно вертикальной оси.
Треугольник серпинского алгоритм построения

И что с того?

Есть в треугольнике Паскаля интересная особенность. Он отображает вышеупомянутый фрактал своими числами. Если долго всматриваться в бездну, бездна начинает всматриваться в тебя значения, то можно увидеть, что чётные и нечетные числа располагаются группами, ибо есть одно негласное всем известное правило: четное+нечетное=нечетное, четное+четное=четное, нечетное+нечетное=четное.

Что ж, меньше слов, больше дела. Сделаем вывод немного нагляднее. Людям, не интересующимся программной реализацией следующий абзац будет неинтересен.

Я взял старый алгоритм расчета-вывода треугольника Паскаля и преобразовал его таким образом, что вместо значения чисел выводится остаток от его деления на 2. Стало быть, четные теперь стали нулями, нечетные — единицами. Сам код прилагаю ниже

Для пущей наглядности я разукрасил вывод следующим способом: вывод программы перенаправляется в файл, откуда по завершению выполнения первой, перл своими регэкспами заменяет единицы на красные буквы О, нули — на синие. Код скрипта ниже:

Из исходника видно, что смотреть мы будем html. Почему? Из соображений простоты. Только дерево DOM неверное получается. Исправим это скриптом на BASH и автоматизируем всё вышеописанное:

Итак, мы компилируем исходник на плюсах, его вывод уходит в текстовичок, баш «эхает» в html на перезапись началом дерева DOM, после чего текстовичок берет перл-скрипт, переделывает его в разноцветную html-версию, дополняет htmlку, после чего любезный БАШ снова завершает формирование дерева. Запускаем, смотрим:
Треугольник серпинского алгоритм построения
Подчеркнем и сравним с оригиналом
Треугольник серпинского алгоритм построения
PROFIT

Видео:треугольник Серпинского наглядноСкачать

треугольник Серпинского наглядно

Треугольник Серпинского

Для просмотра анимации необходимо включить JavaScript.

Треугольник серпинского алгоритм построения Треугольник серпинского алгоритм построения

Этот фрактал описал в 1915 году польский математик Вацлав Серпинский. Чтобы его получить, нужно взять (равносторонний) треугольник с внутренностью, провести в нём средние линии и выкинуть центральный из четырех образовавшихся маленьких треугольников. Дальше эти же действия нужно повторить с каждым из оставшихся трех треугольников, и т. д. На рисунке показаны первые три шага, а на флэш-демонстрации вы можете потренироваться и получить шаги вплоть до десятого.

Треугольник серпинского алгоритм построения

Выкидывание центральных треугольников — не единственный способ получить в итоге треугольник Серпинского. Можно двигаться «в обратном направлении»: взять изначально «пустой» треугольник, затем достроить в нём треугольник, образованный средними линиями, затем в каждом из трех угловых треугольников сделать то же самое, и т. д. Поначалу фигуры будут сильно отличаться, но с ростом номера итерации они будут всё больше походить друг на друга, а в пределе совпадут.

Треугольник серпинского алгоритм построения

Следующий способ получить треугольник Серпинского еще больше похож на обычную схему построения геометрических фракталов с помощью замены частей очередной итерации на масштабированный фрагмент. Здесь на каждом шаге составляющие ломаную отрезки заменяются на ломаную из трех звеньев (она сама получается в первой итерации). Откладывать эту ломаную нужно попеременно то вправо, то влево. Видно, что уже восьмая итерация очень близка к фракталу, и чем дальше, тем ближе будет подбираться к нему линия.

Треугольник серпинского алгоритм построения Треугольник серпинского алгоритм построения

Треугольник серпинского алгоритм построения

Но и на этом не всё. Оказывается, треугольник Серпинского получается в результате одной из разновидностей случайного блуждания точки на плоскости. Этот способ называется «игрой Хаос». С его помощью можно построить и некоторые другие фракталы.

Суть «игры» такова. На плоскости зафиксирован правильный треугольник A1A2A3. Отмечают любую начальную точку B0. Затем случайным образом выбирают одну из трех вершин треугольника и отмечают точку B1 — середину отрезка с концами в этой вершине и в B0 (на рисунке справа случайно выбралась вершина A1). То же самое повторяют с точкой B1, чтобы получить B2. Потом получают точки B3, B4, и т. д. Важно, чтобы точка «прыгала» случайным образом, то есть чтобы каждый раз вершина треугольника выбиралась случайно, независимо от того, что было выбрано в предыдущие шаги. Удивительно, что если отмечать точки из последовательности Bi, то вскоре начнет проступать треугольник Серпинского. Ниже изображено, что получается, когда отмечено 100, 500 и 2500 точек.

Треугольник серпинского алгоритм построения

Некоторые свойства

  • Фрактальная размерность log23 ≈ 1,584962. . Треугольник Серпинского состоит из трех копий самого себя, каждая в два раза меньше. Взаимное расположение их таково, что если уменьшить клеточки сетки в два раза, то число квадратиков, пересекающихся с фракталом, утроится. То есть N(δ/2) = 3N(δ). Если сначала размер клеток был 1, а с фракталом пересекалось N0 из них (N(1) = N0), то N(1/2) = 3N0, N(1/4) = 3 2 N0, . N(1/2 k ) = 3 k N0. Отсюда получается, что N(δ) пропорционально Треугольник серпинского алгоритм построения, и по определению фрактальной размерности она равна как раз log23.
  • Треугольник Серпинского имеет нулевую площадь. Это означает, что в фрактал не влезет ни один, даже очень маленький, кружок. То есть, если отталкиваться от построения первым способом, из треугольника «вынули» всю внутренность: после каждой итерации площадь того, что остается, умножается на 3/4, то есть становится всё меньше и стремится к 0. Это не строгое доказательство, но другие способы построения могут только усилить уверенность, что это свойство всё-таки верно.
  • Неожиданная связь с комбинаторикой. Если в треугольнике Паскаля с 2 n строками покрасить все четные числа белым, а нечетные — черным, то видимые числа образуют треугольник Серпинского (в некотором приближении).

Варианты

Ковер (квадрат, салфетка) Серпинского. Квадратная версия была описана Вацлавом Серпинским в 1916 году. Ему удалось доказать, что любая кривая, которую можно нарисовать на плоскости без самопересечений, гомеоморфна какому-то подмножеству этого дырявого квадрата. Как и треугольник, квадрат можно получить из разных конструкций. Справа изображен классический способ: разделение квадрата на 9 частей и выбрасывание центральной части. Затем то же повторяется для оставшихся 8 квадратов, и т. д.

Треугольник серпинского алгоритм построения

Как и у треугольника, у квадрата нулевая площадь. Фрактальная размерность ковра Серпинского равна log38, вычисляется аналогично размерности треугольника.

Пирамида Серпинского. Один из трехмерных аналогов треугольника Серпинского. Строится аналогично с учетом трехмерности происходящего: 5 копий начальной пирамиды, сжатой в два раза, составляют первую итерацию, ее 5 копий составят вторую итерацию, и т. д. Фрактальная размерность равна log25. У фигуры нулевой объем (на каждом шаге половина объема выбрасывается), но при этом площадь поверхности сохраняется от итерации к итерации, и у фрактала она такая же, как и у начальной пирамиды.

Треугольник серпинского алгоритм построения

Губка Менгера. Обобщение ковра Серпинского в трехмерное пространство. Чтобы построить губку, нужно бесконечное повторение процедуры: каждый из кубиков, из которых состоит итерация, делится на 27 втрое меньших кубиков, из которых выбрасывают центральный и его 6 соседей. То есть каждый кубик порождает 20 новых, в три раза меньших. Поэтому фрактальная размерность равна log320. Этот фрактал является универсальной кривой: любая кривая в трехмерном пространстве гомеоморфна некоторому подмножеству губки. У губки нулевой объем (так как на каждом шаге он умножается на 20/27), но при этом бесконечно большая площадь.

🌟 Видео

Игры хаоса. Фракталы [Numberphile на русском]Скачать

Игры хаоса. Фракталы [Numberphile на русском]

Что Такое Фракталы? Простое Объяснение!Скачать

Что Такое Фракталы? Простое Объяснение!

Треугольник Серпинского ФракталыСкачать

Треугольник Серпинского Фракталы

Треугольник Серпинского - красивая математикаСкачать

Треугольник Серпинского - красивая математика

ФРАКТАЛЫ - что ЭТО? ПОСТРОЕНИЕ в Python, Треугольник Серпинского При Помощи TurtleСкачать

ФРАКТАЛЫ - что ЭТО? ПОСТРОЕНИЕ в Python, Треугольник Серпинского При Помощи Turtle

#237. Великое фрактальное подобие (feat. @vectozavr )Скачать

#237. Великое фрактальное подобие (feat. @vectozavr )

Фракталы за 2 минуты в PaintСкачать

Фракталы за 2 минуты в Paint

Треугольник СерпинскогоСкачать

Треугольник Серпинского

Игра в хаос с неожиданно красивым фракталом. Салфетка Серпинского (треугольник Серпинского)Скачать

Игра в хаос с неожиданно красивым фракталом. Салфетка Серпинского (треугольник Серпинского)

Треугольник Серпинского (фрактал) на JavaScriptСкачать

Треугольник Серпинского (фрактал) на JavaScript

Треугольник серпинскогоСкачать

Треугольник серпинского

Секрет Сложнейших Фракталов... Наглядно и в Анимации!Скачать

Секрет Сложнейших Фракталов... Наглядно и в Анимации!

Треугольник ПаскаляСкачать

Треугольник Паскаля

Треугольник Серпинского порядка n, который вращается вокруг своего центра тяжести.Скачать

Треугольник Серпинского порядка n, который вращается вокруг своего центра тяжести.

Как из треугольника Паскаля сделать ковёр Серпинского?Скачать

Как из треугольника Паскаля сделать ковёр Серпинского?

Треугольник Серпинского линиямиСкачать

Треугольник Серпинского линиями

От треугольника Паскаля к Фракталу Серпинского. Или зачем программисту нужен кругозор?Скачать

От треугольника Паскаля к Фракталу Серпинского. Или зачем программисту нужен кругозор?

Sierpinski triangle - Треугольник СерпинскогоСкачать

Sierpinski triangle - Треугольник Серпинского
Поделиться или сохранить к себе: