unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Grafiek, Math; 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; procedure Konstant; const N : integer = 50; var k : integer; x : double; begin Form1.Image1.Canvas.Pen.Width := 2; for k := 0 to N do begin x := k/N; Form1.Image1.Canvas.MoveTo(x2i(x),y2j(0)); Form1.Image1.Canvas.LineTo(x2i(x),y2j(0.1)); end; Form1.Image1.Canvas.MoveTo(x2i(0),y2j(0.5)); Form1.Image1.Canvas.LineTo(x2i(1),y2j(0.5)); Form1.Image1.Picture.SaveToFile('constant.bmp'); end; procedure Lineair; const N : integer = 50; var k : integer; x,D : double; begin Form1.Image1.Canvas.Pen.Width := 2; D := 1/(sqrt(1/4+2*N)-1/2); for k := 0 to N do begin x := (sqrt(1/4+2*k)-1/2)*D; Form1.Image1.Canvas.MoveTo(x2i(x),y2j(0)); Form1.Image1.Canvas.LineTo(x2i(x),y2j(0.1)); end; Form1.Image1.Canvas.MoveTo(x2i(0),y2j(1/2*D)); Form1.Image1.Canvas.LineTo(x2i(1),y2j(1+1/2*D)); Form1.Image1.Picture.SaveToFile('lineair.bmp'); end; procedure Cauchy; const N : integer = 30; var k : integer; x,y,D : double; begin Form1.Image1.Canvas.Pen.Width := 2; D := 1/tan((1/2-1/N)*Pi); for k := 0 to (N div 2) do begin x := tan((k/N-1/N)*Pi)*D; Form1.Image1.Canvas.MoveTo(x2i(x),y2j(0)); Form1.Image1.Canvas.LineTo(x2i(x),y2j(0.1)); end; Form1.Image1.Canvas.MoveTo(x2i(0),y2j(1)); for k := 1 to Wijd do begin x := i2x(k); y := 1/(1+sqr(x/d)); Form1.Image1.Canvas.LineTo(x2i(x),y2j(y)); end; Form1.Image1.Picture.SaveToFile('cauchy.bmp'); end; procedure Gitaar; const N : integer = 20; var k : integer; x,D : double; begin Form1.Image1.Canvas.Pen.Width := 2; for k := 0 to N do begin x := exp(-ln(2)*k/12); Form1.Image1.Canvas.MoveTo(x2i(x),y2j(0)); Form1.Image1.Canvas.LineTo(x2i(x),y2j(0.1)); end; D := exp(-ln(2)*N/12); Form1.Image1.Canvas.MoveTo(x2i(D),y2j(1)); for k := 0 to Wijd do begin x := i2x(k); if x < D then Continue; Form1.Image1.Canvas.LineTo(x2i(x),y2j(D/x)); end; Form1.Image1.Picture.SaveToFile('gitaar.bmp'); end; procedure TForm1.Scheppen(Sender: TObject); begin TV(Form1.Image1); ClearDevice; xmin := 0; xmax := 1; ymin := 0; ymax := 1; Konstant; keer := 0; end; procedure TForm1.Toetsdruk(Sender: TObject; var Key: Char); begin keer := keer + 1; if keer > 3 then keer := 0; ClearDevice; case keer of 0 : Konstant; 1 : Lineair; 2 : Cauchy; 3 : Gitaar; end; end; end.