
Среда программирования:
Lazarus 0.9.30 win32
Статья по теме:
Построение множества Жулиа
Код программы:
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; PaintBox1: TPaintBox; procedure Button1Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); const R: INTEGER = 25; mX: INTEGER = 630; my: INTEGER = 460; numits: integer = 256; a: real = -1.7; b: real = -1.7; c: real = 1.7; d: real = 1.7; x0: real = 0.885; y0: real = 0; var colo, p, q, n : integer; k, l, xx, yy, x, y : real; begin PaintBox1.Canvas.Clear; for p := 1 to Mx do for q := 1 to My do begin k := a + (c - a) * p / Mx; L := b + (d - b) * q / My; x := k; y := L; for n := 1 to numits do begin xx := sqr(x) - sqr(y) - x0; yy := 2 * x * y - y0; x := xx; y := yy; if (sqr(x) + sqr(y)) > R then begin colo := (n * 50) mod 255; PaintBox1.Canvas.Pixels[p, q] := RGBToColor(0, 0, colo); Break; end; { IF } end; end; end; end.
Прикрепленный файл | Размер |
---|---|
Исходные коды и исполняемый файл | 763.11 кб |