4. Геометрические фракталы.
Определение. Линейное преобразование вместе с последующим преобразованием сдвига будем называть аффинным преобразованием.
Аффинное преобразование в пространстве можно представить в матричной форме:
Важное свойство аффинного преобразования заключается в том, что аффинное преобразование отрезок переводит в отрезок.
Аффинное преобразование плоскости однозначно определяется тройкой не лежащих на одной прямой точек и их образами. В самом деле, пусть некоторое АП отображает точки , , в точки , и .
Тогда имеем:
Если
то получаем следующую систему линейных уравнений:
Или, переписывая, получаем:
Решая эту систему, находим матричное представление аффинного преобразования.
Системе итерируемых функций в пространстве :
соответствует следующий формат представления:
Fractal {
a1 b1 c1 d1 e1 f1 p1
a2 b2 c2 d2 e2 f2 p2
..............
an bn cn dn en fn pn
}
где числа есть вероятности выбора соответствующих преобразований в рандомизированном алгоритме.
Для построения фракталов, задаваемых таким способом требуется в программе описать процедуру изменения координат по задаваемому коэффициентами СИФ закону.
Пример. Написать программу построения фрактала Лист, задаваемого следующим набором СИФ:
Leaf_3 { 0.60 -0.6 0.6 0.60 0.00 0.0 0.5 0.53 0.0 0.0 0.53 0.47 0.0 0.5 }
| Рис. Фрактал Лист. |
program Leaf_3;
uses CRT, Graph;
var
gd,gm : Integer;
const
iter = 50000;
procedure Draw;
var
t, x, y, p : Real;
k : LongInt;
mx, my, rad : Integer;
begin
mx := 10;
my := 250;
rad :=600;
Randomize;
x := 0.0;
y := 0.0;
for k := 1 To iter do
begin
p := Random;
t := x;
if p <= 1/2 then
begin
x := 0.6 * x -0.6* y;
y := 0.6 * t +0.6* y;
end
else
begin
x := 0.53 * x +0.0 * y +0.47;
y := 0.0* t +0.5 * y;
end;
PutPixel(mx + Round(rad * x), my - Round(rad * y), 2);
end;
end;
begin
gd := Detect;
InitGraph(gd,gm,'d:\bp\bin');
Draw;
ReadKey;
CloseGraph;
end.
- Лекция Фрактальная графика.
- 1. Понятие о фракталах.
- 2. Определение фракталов. Классификация фракталов.
- 3. Системы итерируемых функций.
- 4. Геометрические фракталы.
- 4.1. Снежинка Коха
- Вариации на тему кривой Коха
- 4.2. Треугольник Серпинского
- Построение треугольника Серпинского с помощью рекурсии
- 4.3. Драконова ломаная
- 5. Алгебраические фракталы
- 5.1. Множество Мандельброта.
- 5.2.Множество Жюлиа
- 5.3. Фрактал Ньютона
- 7. Фракталы в природе (frakt-lecture.Pdf)