Фрактал Хартера — Хейтуея
Дракон Хартера, також відомий як дракон Хартера - Хейтуея, був вперше досліджений фізиками NASA - John Heighway, Bruce Banks, і William Harter. Він був описаний в 1967 році Мартіном Гарднером (Martin Gardner) в колонці «Математичні ігри» журналу www.scientificamerican.com.
Багато властивостей фрактала були описані Чандлером Девісом і Дональдом Кнутом.
Для його побудови візьмемо відрізок. Повернемо його на 90 градусів навколо однієї з вершин і додамо отриманий відрізок до вихідного. Отримаємо куточок з двох відрізків. Повторимо описану процедуру. Повернемо куточок на 90 градусів навколо вершини і додамо отриману ламану до вихідної.
Код програми у середовищі програмування Borland Delphi 7.0 [1]
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Button1: TButton; PaintBox1: TPaintBox; procedure Button1Click(Sender: TObject); procedure Paint(x1,y1,x2,y2,k:Longint); private { Private declarations } public n: integer { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Paint(x1,y1,x2,y2,k:Longint); var tx,ty:Longint; begin if n=1 then begin PaintBox1.Canvas.Pen.Color:=clRed; end else begin PaintBox1.Canvas.Pen.Color:=clRed; end; if k=0 then begin PaintBox1.Canvas.MoveTo(x1,y1); PaintBox1.Canvas.LineTo(x2,y2); Exit; end; tx := (x1+x2) div 2 + (y2-y1) div 2; ty := (y1+y2) div 2 - (x2-x1) div 2; Paint(x2,y2,tx,ty,k-1); Paint(x1,y1,tx,ty,k-1); end; procedure TForm1.Button1Click(Sender: TObject); Var x1,y1,x2,y2,k: Integer; begin PaintBox1.Width := 1000; PaintBox1.Height:= 650; PaintBox1.Canvas.Brush.Color := clWhite; PaintBox1.Canvas.Rectangle(0,0,PaintBox1.width,PaintBox1.height); x1 := 200; y1 := 200; x2 := 500; y2 := 500; k := 24; Paint(x1,y1,x2,y2,k); end. end.
- ↑ Без коментарів