Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Halbkreis zwischen zwei Punkten

  Alt 1. Jun 2006, 22:10
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
Klaus
  Mit Zitat antworten Zitat