Einzelnen Beitrag anzeigen

Chaismo

Registriert seit: 2. Apr 2007
Ort: Dresden
63 Beiträge
 
Delphi 7 Personal
 
#1

Schnittpunkt zweier Halbkreise berechnen?

  Alt 27. Jun 2007, 20:39
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!
Martin Seeler
  Mit Zitat antworten Zitat