Hallöchen!
Ich schreibe gerade ein Programm für Physik, mit welchen man Interferenzbilder darstellen lassen kann.
Nun würde ich aber gern wissen wie man den Schnittpunkt von zwei Halbkreisen berechnen kann?!
Weiteres Problem ist, dass es an jedem Halbkreis VIELE Schnittpunkte gibt...

...als Nebenfrage würd ich gern wissen ob ich diese ganze Function in nem zwischenbild speichern kann
damit dieses Flackern auf der PaintBox verschwindet...aber das ganze als TImage funzt net...
Und damit ihr ma wisst wies im Moment aussieht hier erstma der Code...
Delphi-Quellcode:
function malen:Boolean;
var mx,my,i,r,l:Integer;
begin
Form1.PaintBox1.Repaint;
mx:=Form1.Panel1.Width;
my:=Form1.Paintbox1.Height;
r:=Form1.WL.value;
Form1.PaintBox1.Canvas.Pen.Width:=1;
Form1.PaintBox1.Canvas.Pen.Color:=clblue;
l:=1;
Repeat
Form1.PaintBox1.canvas.MoveTo(mx+r, my);
For i:= 0 to 180 do
begin
Form1.PaintBox1.canvas.LineTo(round(mx+r*cos(i*Pi/180)),round(my-r*sin(i*Pi/180)));
end;
l:=l+1;
r:=Form1.WL.Value*l;
Until r>600;
mx:=Form1.Panel1.Width+Form1.Panel2.width;
my:=Form1.Paintbox1.Height;
r:=Form1.WL.value;
Form1.PaintBox1.Canvas.Pen.Width:=1;
Form1.PaintBox1.Canvas.Pen.Color:=clblue;
l:=1;
Repeat
Form1.PaintBox1.canvas.MoveTo(mx+r, my);
For i:= 0 to 180 do
begin
Form1.PaintBox1.canvas.LineTo(round(mx+r*cos(i*Pi/180)),round(my-r*sin(i*Pi/180)));
end;
l:=l+1;
r:=Form1.WL.Value*l;
Until r>600;
Schonmal Danke im voraus!