unit Unit9; { This software has been designed and it is CopyLefted by Han de Bruijn: (===) @-O^O-@ #/_\# ### FAR MORE EFFICIENT DELAUNAY TRIANGULATION ========================================= } INTERFACE uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Algemeen, Shamos, Grafisch, Franco, Zijdelings; 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} var nodes : integer; procedure Some_Help; begin Writeln; writeln('Syntax: [program] [nodes]'); Writeln(' nodes = # random points'); Writeln(' Default # nodes = 10'); end; procedure Read_Parameters; var woord : string; OK : boolean; k : integer; begin nodes := 10; if not (ParamCount = 1) then Some_Help; if ParamCount = 0 then Exit; woord := ParamStr(1); OK := true; for k := 1 to Length(woord) do if not (woord[k] in ['0'..'9']) then OK := false; if not OK then begin Some_Help; Halt; end; nodes := StrToInt(woord); if nodes < 3 then begin Writeln('# nodes must be > 2'); Halt; end; end; procedure TForm1.Toetsdruk(Sender: TObject; var Key: Char); { On KeyPress } var mesh : drietal; rij : punten; begin Tijdmeting(''); ClearDevice; Opnieuw(nodes,rij); Delaunay(rij,mesh); teken_mesh(rij,mesh); Tijdmeting('Duur'); Form1.Image1.Picture.SaveToFile('Boris.bmp'); end; procedure TForm1.Scheppen(Sender: TObject); { At moment of Creation } var mesh : drietal; rij : punten; begin Tijdmeting(''); Read_Parameters; xmin := -0.1; xmax := 1.1; ymin := -0.1; ymax := 1.1; TV(Form1.Image1); ClearDevice; Opnieuw(nodes,rij); Delaunay(rij,mesh); teken_mesh(rij,mesh); Tijdmeting('Duur'); Form1.Image1.Picture.SaveToFile('Boris.bmp'); end; END.