Рис.6 Драконова ламана. Червоним кольором виділений фрактал попереднього рівня.
Розглянемо побудову фрактала «Басейни Ньютона»
Побудова здійснюється натисканням на кнопку «Намалювати». Також можна вибрати масштабний коефіцієнт побудови. (Мал. 7)
Рис.7 Басейни Ньютона. Зліва - коефіцієнт масштабування дорівнює 20, праворуч коефіцієнт дорівнює 4.
Побудова фрактала «Біоморфи».
Рис.8 Біоморфи
Побудова здійснюється натисканням на кнопку «Намалювати». Також можна вибрати масштабний коефіцієнт побудови і коефіцієнти, що впливають на зовнішній вигляд. (Мал. 9)
Рис.9 біморфа з різними значеннями коефіцієнтів зовнішнього вигляду.
3.2 Лістинг програми
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ,, StdCtrls, Spin, Buttons, ExtCtrls, ComCtrls;=class (TForm): TPageControl ;: TTabSheet ;: TTabSheet ;: TPanel ;: TPanel ;: TSpinEdit ;: TPanel ;: TImage ;: TPanel ;: TLabel ;: TSpinEdit ;: TTabSheet ;: TButton ;: TLabel ;: TLabel ;: TSpinEdit ;: TButton ;: TButton ;: TTabSheet ;: TImage;:TButton ;: TSpinEdit ;: TLabel ;: TLabel ;: TLabel ;: TSpinEdit ;: TSpinEdit ;: TImage ;: TImage ;: TImage ;: TStaticText ;: TStaticText ;: TStaticText ;: TStaticText ;: TButton ;: TButton ;: TButton ;: TButton; Button1Click (Sender: TObject); btn1Click (Sender: TObject); Button3Click (Sender: TObject); btn2Click (Sender: TObject); Button2Click (Sender: TObject); Button4Click (Sender: TObject); Button5Click (Sender: TObject); Button6Click (Sender: TObject);
{Private declarations}
{Public declarations}
end;
//оголошення глобальних змінних
var
Form1: TForm1;
rnd, x1, x2, x3, y1, y2, y3, FinalUroven: integer;
c: char;: string;, UgolR, UgolL, StartUgol, ConCoef: Real;
{$ R * .dfm}
//Допоміжна процедура для малювання лінії на заданому полотні
procedure Line (x1, y1, x2, y2: real; C: TCanvas) ;. Moveto (round (x1), round (y1)) ;. lineto (round (x2), round ( y2)) ;;
//Процедура побудови трикутника Серпінського по заданих параметрах
Procedure Treugolnik_serpinskogo (uroven: integer; x1, y1, x2, y2, x3, y3: real);
var
xd, yd, xe, ye, xf, yf: real;
begin (uroven); uroven=FinalUroven then (x1, y1, x2, y2, Form1.Image1.Canvas); (x2, y2, x3, y3, Form1.Image1.Canvas); ( x3, y3, x1, y1, Form1.Image1.Canvas);.Image1.Canvas.Refresh;:=round((x1+x2)/2);:=round((y1+y2)/2);:=round((x2+x3)/2);:=round((y2+y3)/2);:=round((x1+x3)/2);:=round((y1+y3)/2);_serpinskogo(uroven,x1,y1,xd,yd,xf,yf);_serpinskogo(uroven,xd,yd,x2,y2,xe,ye);_serpinskogo(uroven,xf,yf,xe,ye,x3,y3);;
end;
//Виклик процедури побудови трикутника Серпінського допомогою натиснення на кнопку «Намалювати»
procedure TForm1.Button3Click (Sender: TObject);
//Заповнюємо область для малювання білим кольором
image1.Canvas.Brush.Color:=clWhite;.Canvas.rectangle(0,0,image1.Width,image1.Height);
//Задаємося початковими точками
x1:=10;
y1:=10;
x2:=320;:=470;:=630;:=10; .Canvas.CleanupInstance;
image1.Canvas.rectangle (0,0,654,472); spinedit1.value gt; 0 then:=Spinedit1.Value; _serpinskogo (0, x1, y1, x2, y2, x3, y3) ;; ;
//Виклик процедури побудови трикутника Серпінського вищого рівня за допомогою натиснення на кнопку «Наступний»
procedure TForm1.Button2Click (Sender: TObject) ;. Canvas.Brush.Color:=clWhite; .Canvas.rectangle (0,0, image1.Width, image1.Height);
x1:=10;:=10;:=320;:=470;:=630;:=10; .Canvas.CleanupInstance;
image1.Canvas.rectangle (0,0,654,472); spinedit1.value gt; 0 then:=Spinedit1.Value +1; .Value:=FinalUroven;
Treugolnik_serpinskogo (0, x1, y1, x2, y2, x3, y3);
end;
end;
//Виклик процедури побудови трикутника Серпінського нижчого рівня за допомогою натиснення на кнопку «Попередній»
procedure TForm1.Button4Click (Sender: TObject); spinedit1.val...