unit Unit2; { This software has been designed and it is CopyLefted by Han de Bruijn: (===) @-O^O-@ #/_\# ### } INTERFACE uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Grafisch; type TForm1 = class(TForm) Image1: TImage; procedure Toetsdruk(Sender: TObject; var Key: Char); procedure Scheppen(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; IMPLEMENTATION {$R *.dfm} function w1(x : double) : double; begin w1 := 1/2+sqrt(2*x+1/4); end; function w2(x : double) : double; begin w2 := 1/2+sqrt(2*x); end; procedure tekenen; var k : integer; x,y : double; begin xmin := 0; xmax := 16; ymin := 0; ymax := 7; with Form1.Image1.Canvas do begin Pen.Width := 1; end; for k := 1 to 16 do begin with Form1.Image1.Canvas do begin Pen.Color := clBlack; MoveTo(x2i(k),y2j(0)); LineTo(x2i(k),y2j(w1(k))); Pen.Color := clRed; LineTo(x2i(0),y2j(w1(k))); Pen.Color := clBlue; MoveTo(x2i(k),y2j(w2(k))); LineTo(x2i(0),y2j(w2(k))); end; end; for k := 1 to 6 do begin with Form1.Image1.Canvas do begin Pen.Color := clBlack; Pen.Width := 2; MoveTo(x2i(0),y2j(k)); LineTo(x2i(((k-1)*k) div 2),y2j(k)); LineTo(x2i(((k-1)*k) div 2),y2j(0)); end; end; x := 0; y := w1(x); with Form1.Image1.Canvas do begin Pen.Color := clRed; Pen.Width := 2; MoveTo(x2i(x),y2j(y)); end; for k := 0 to Wijd-1 do begin x := i2x(k); y := w1(x); with Form1.Image1.Canvas do begin LineTo(x2i(x),y2j(y)); end; end; x := 0; y := w2(x); with Form1.Image1.Canvas do begin Pen.Color := clBlue; Pen.Width := 2; MoveTo(x2i(x),y2j(y)); end; for k := 0 to Wijd-1 do begin x := i2x(k); y := w2(x); with Form1.Image1.Canvas do begin LineTo(x2i(x),y2j(y)); end; end; end; procedure schetsen; { Original Grid } var k : integer; x,y : double; begin xmin := 44; xmax := 56; ymin := 9.7; ymax := 11.3; with Form1.Image1.Canvas do begin Pen.Width := 1; end; for k := 44 to 56 do begin with Form1.Image1.Canvas do begin Pen.Color := clBlack; MoveTo(x2i(k),y2j(0)); LineTo(x2i(k),y2j(w1(k))); Pen.Color := clRed; LineTo(x2i(0),y2j(w1(k))); Pen.Color := clBlue; MoveTo(x2i(k),y2j(w2(k))); LineTo(x2i(0),y2j(w2(k))); end; end; for k := 10 to 11 do begin with Form1.Image1.Canvas do begin Pen.Color := clBlack; Pen.Width := 2; MoveTo(x2i(0),y2j(k)); LineTo(x2i(((k-1)*k) div 2),y2j(k)); LineTo(x2i(((k-1)*k) div 2),y2j(0)); end; end; x := 0; y := w1(x); with Form1.Image1.Canvas do begin Pen.Color := clRed; Pen.Width := 2; MoveTo(x2i(x),y2j(y)); end; for k := 0 to Wijd-1 do begin x := i2x(k); y := w1(x); with Form1.Image1.Canvas do begin LineTo(x2i(x),y2j(y)); end; end; x := 0; y := w2(x); with Form1.Image1.Canvas do begin Pen.Color := clBlue; Pen.Width := 2; MoveTo(x2i(x),y2j(y)); end; for k := 0 to Wijd-1 do begin x := i2x(k); y := w2(x); with Form1.Image1.Canvas do begin LineTo(x2i(x),y2j(y)); end; end; end; procedure TForm1.Toetsdruk(Sender: TObject; var Key: Char); { Inactive } begin ClearDevice; schetsen; Form1.Image1.Picture.SaveToFile('verder.bmp'); end; procedure TForm1.Scheppen(Sender: TObject); { At moment of creation } begin TV(Form1.Image1); ClearDevice; tekenen; Form1.Image1.Picture.SaveToFile('wortels.bmp'); end; END.