Термин: Фрактал (лат. fractus — дробленый) — термин, означающий геометрическую фигуру, обладающую свойством самоподобия, то есть составленную из нескольких частей, каждая из которых подобна всей фигуре целиком. В более широком смысле под фракталами понимают множества точек в евклидовом пространстве, имеющие дробную метрическую размерность (в смысле Минковского или Хаусдорфа), либо метрическую размерность, строго большую топологической. Материал взят из Википедии — свободной энциклопедии: Алгоритм(рекурсивный): 1.Рисуем окружность. unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, CRT, Menus; type { TForm1 } TForm1 = class(TForm) Button1: TButton; MainMenu1: TMainMenu; MenuItem1: TMenuItem; MenuItem2: TMenuItem; MenuItem3: TMenuItem; MenuItem4: TMenuItem; PaintBox1: TPaintBox; procedure Button1Click(Sender: TObject); procedure Draw(x, y , Size : Integer); procedure MenuItem2Click(Sender: TObject); procedure MenuItem4Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; gd, gm : Integer; r,g,b:Integer; const Min = 1; //Главные параметры алгоритма n = 2; m = 5; implementation { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin Draw(320,240,200); end; procedure TForm1.Draw(x, y , Size : Integer); var s1, s2 : Integer; i : Integer; begin inc(b); g:=g+10;inc(r); //Изменение цвета paintbox1.Canvas.Brush.Style:=bsClear; //новых окружностей paintbox1.Canvas.pen.Color:=RGBtocolor(r,g,b); if Size > Min then begin s1 := Size div n; //Уменьшение радиуса s2 := Round(Size * (n-1)/n); for i := 1 to m do begin Draw(x - Round(s2*sin(2*pi/m*i)), y + Round(s2*cos(2*pi/m*i)), s1); //Рисование окружностей end; Draw(x,y,s1); //И окружность в центре end; paintbox1.canvas.Ellipse(x-Size, y-Size,x+Size, y+Size); end; procedure TForm1.MenuItem2Click(Sender: TObject); //выход begin close; end; procedure TForm1.MenuItem4Click(Sender: TObject); //Очистка Paintbox begin paintbox1.Refresh; end; initialization {$I unit1.lrs} end.
Ключевые слова:
фрактал, фрактальная графика, целующиеся окружности
|
|||||||