unit Unit5; { This software has been designed and is CopyLefted by Han de Bruijn: (===) @-O^O-@ #/_\# ### } interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Tweemaal; type TForm1 = class(TForm) Image1: TImage; procedure Scheppen(Sender: TObject); procedure Toetsdruk(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var keer : integer; u : vector; uit : boolean; procedure ClearDevice; { Clear Screen } var Wijd,Hoog : integer; rechthoek : TRect; begin Wijd := Form1.Image1.Width; Hoog := Form1.Image1.Height; rechthoek := Rect(0,0,Wijd,Hoog); with Form1.Image1.Canvas do begin Brush.Color := clWhite; FillRect(rechthoek); end; end; procedure Tekenen; { Draw on Screen } var W,H,k,i,j,N : integer; nr : string[2]; begin ClearDevice; N := Length(x); W := Form1.Image1.Width-1; H := Form1.Image1.Height-1; Form1.Image1.Canvas.Brush.Color := clBlack; Form1.Image1.Canvas.Pen.Color := clBlack; { Point Clouds } for k := 0 to N-1 do begin i := Round(0.25*x[k]*W); j := H-Round(0.25*y[k]*H); Form1.Image1.Canvas.Ellipse(i-2,j-2,i+2,j+2); end; { Midpoints } Form1.Image1.Canvas.Brush.Color := clRed; Form1.Image1.Canvas.Pen.Color := clRed; i := Round(0.25*u[0]*W); j := H-Round(0.25*u[1]*H); Form1.Image1.Canvas.Ellipse(i-6,j-6,i+6,j+6); i := Round(0.25*u[2]*W); j := H-Round(0.25*u[3]*H); Form1.Image1.Canvas.Ellipse(i-6,j-6,i+6,j+6); { Newton Rhapson iteration } if not uit then uit := een_stap(u,1.e-10); nr[1] := char((keer div 10)+byte('0')); nr[2] := char((keer mod 10)+byte('0')); Form1.Image1.Picture.SaveToFile('film\P'+nr+'.bmp'); end; procedure TForm1.Scheppen(Sender: TObject); { On Create } const N : integer = 1000; eps : double = 0.03; begin dubbelen(N); u[0] := 0+eps ; u[1] := 0+eps; u[2] := 4-eps ; u[3] := 4-eps; keer := 0; end; procedure TForm1.Toetsdruk(Sender: TObject; var Key: Char); { On KeyPress } begin Tekenen; keer := keer + 1; end; end.