Как построить узор Серпинского

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

1. Построить треугольник АВС при помощи Инструмента Линейка.

2. Построить середины сторон треугольника. С помощью Инструмента Текст отметить вершины А, В и С и средние точки D, E и F, как показано на рисунке.

Теперь имеется треугольник - прообраз и много маленьких треугольников, например AFE, FBD, EDC. Эти три треугольника образуют "внутренние углы" исходного треугольника.

3. Выделить три точки A, B и C и выполнить команду Итерации меню Преобразования.

4. В окне диалога Итерационный процесс задать отображение.

Это отображение исходного треугольника на нижний левый треугольник FBD. Появится множество треугольников последовательно отображаемых в нижний левый угол исходного треугольника.

Отметим, что на этом шаге точка В отображается на себя, поскольку она является вершиной исходного треугольника и маленького треугольника.

5. Воспользовавшись вспомогательным меню Структура, добавить новое отображение.

Это отображение ставит в соответствие исходному треугольнику нижний правый маленький треугольник, но одновременно, согласно предыдущему отображению, ставит ему в соответствие и нижний левый маленький треугольник.

6. Снова, воспользовавшись вспомогательным меню Структура, добавить третье финальное отображение.

Это отображение ставит в соответствие предыдущим отображениям верхний угол треугольника.

7. Щелкнув кнопку Выполнить, закрыть окно диалога.

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

Если выделить завершенный итерационный процесс, то можно увеличивать или уменьшать его глубину, используя клавиши + или - на клавиатуре.

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

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

См. также:
Инструмент Линейка
Выделить и Отменить выделение объектов
Итерации с множественным отображением
Окно диалога итераций
Итерации и образы
Многоугольники и внутренние области
Внутренняя область
Свойства итерации