Классические фракталы имеют единый принцип построения – добавление либо выбрасывание отдельных линий или областей. Этот процесс повторяется многократно (итерационно).
Достаточно большую группу самоподобных фракталов (фрактальные деревья, растения, русла рек и т д.) можно создавать с помощью так называемых L -систем, в которых используется подсистема графического вывода под названием тертл-графика (от английского turtle – черепаха).
Сущность тертл-графики состоит в том, что изображающая точка (черепашка) движется по экрану монитора прямолинейно, дискретными шагами, оставляя или не оставляя свой след. После каждого перемещения она может повернуться на некоторый угол в ту, или иную сторону, или продолжить движение вновь по прямой. Так образуется непрерывная или разрывная дискретная линия на экране. Изображающая точка может вернуться на несколько шагов назад, не прерывая свой след, и начать движение в новом направлении. В этом случае происходит ветвление траектории движения.
|
|
Изображающая точка движется по командам, задаваемых кодовыми словами. В каждой точке экрана положение изображающей точки задается тремя параметрами х, у, (х, у – координаты точки; – угол, определяющий направление движения). Кодовое слово состоит из указаний перемещения на один шаг с оставлением или неоставлением следа, увеличением или уменьшением направления движения на некоторый угол , открытием ветви, закрытием ветви.
L -систему образуют алфавит, инициатор (слово инициализации, аксиома) и набор порождающих правил, определяющих преобразование аксиомы для организации итерационного процесса. Алфавит состоит из набора отдельных символов. Каждый символ представляет собой микрокоманду, предписывающую определенное действие, выполняемое изображающей точкой.
Например:
F – переместиться вперед на один шаг, прорисовывая след;
b - переместиться вперед на один шаг, не прорисовывая след;
[ – открыть ветвь;
] – закрыть ветвь;
+ – увеличить угол на величину ;
– – уменьшить угол на величину .
Из элементов алфавита можно создавать слова инициализации (аксиомы). Например, L -система, позволяющая нарисовать на экране равносторонний треугольник, следующая:
,
аксиома: F + +F + +F.
Изображающая точка имеет первоначальное направление движения под углом . Согласно команде выполняется движение на один шаг. По команде + и + осуществляется поворот на угол . Следующая команда F предписывает движение еще на один шаг. Окончательная команда F замыкает треугольник.
Порождающее правило предназначено для замены микрокоманды в аксиоме группой микрокоманд. Например, если в приведенной выше аксиоме команду F заменить порождающим правилом , то изображающая точка при движении по экрану нарисует снежинку Коха.
|
|
Порождающее правило – это разновидность рекурсивной процедуры. Глубина рекурсии показывает, какое количество итераций по замене микрокоманд группой микрокоманд необходимо выполнить.
С помощью микрокоманды ветвления осуществляется построение деревьев и растений. Порождающие правила позволяют выполнять ветвления многократно не только от линии основного направления движения изображающей точки, но и от построенных ранее ветвей.