Nun, da habe ich Dich traurigerweise erstmal in die falsche Wege geleitet.
Es tut mir leid.
Ich habe auch noch ein paar Probleme.
Aber mit Punkten die auf der gleiche X-Achse liegen
geht es mit dem folgenden Code:
Delphi-Quellcode:
procedure circle(canvas:TCanvas;p1,p2:TPoint);
var
radius: Integer;
i,x,y: Integer;
m:real;
begin
if p1.x = p2.x then
radius := (p2.y - p1.y) DIV 2
else
if p1.y = p2.y then
radius := (p2.x -p1.x) DIV 2
else
radius := round(sqrt ( sqr(p2.x - p1.x) + sqr(p2.y-p1.y))) DIV 2;
m := (p2.Y - p1.Y)/(p2.x -p1.X);
canvas.Pen.Color:=clRed;
canvas.penPos:=p1;
canvas.LineTo(p2.x,p2.y);
canvas.PenPos:=p2;
canvas.Pen.color:=clBlack;
for i:=0 to 180 do
begin
x:=p2.x+round(radius*cos(i*pi/180))-radius;
y:=p2.y+round(radius*sin(i*pi/180));
sleep(10);
canvas.LineTo(x,y);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
p1,p2:TPoint;
begin
p1.X:=450;
p1.y:=150;
p2.X:=300;
p2.Y:=150;
circle(Form1.Canvas,p1,p2);
end;
end.
Mehr fällt mir dazu heute auch nicht ein.
Grüße
Klaus