Hallo Leute. Ich möchte ein Programm erstellen, welches PI bestimmt. Dazu benutze ich die Monte Carlo-Methode, welche zufällige Punkte bestimmt und diese am Einheitskreis prüft. Dabei sollen diese Punkte eingezeichnet werden, aber immer mit einer Pause von 100ms.
Hier erstmal mein Programmcode
Hier erstmal mein Programmcode
Code:
var
Form1: TForm1;
xkoo, ykoo : array of integer;
implementation
procedure TForm1.Button1Click(Sender: TObject);
var i,krtr,r,w,s:longint;x,y:real;
begin
krtr:=0;
randomize;
r:=strtoint(edit1.text);
for i:= 0 to r-1 do
begin
x:=random; y:= random;
w:= round(x*341);
s:= round(y*341);
setlength(xkoo, r);
setlength(ykoo, r);
xkoo[i] := w;
ykoo[i] := s;
{Image1.Canvas.Pixels[xkoo[i],ykoo[i]] := clblack;
So werden alle aufeinmal gezeichnet.}
if x*x + y*y <= 1 then begin inc(krtr); end ;
end;
Label1.Caption := floattostr(4*krtr/r);
{Zeichnen in das Bild }
Timer1.Enabled := true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var i : Integer;
begin
Image1.Canvas.Pixels[xkoo[i],ykoo[i]] := clblack;
i := i+1;
end;