Delphi-Quellcode:
// Typen
pz : TPoint; // punkt wo die Senkrechte aufliegt
p3 : TPoint; // Endpunkt der Geraden
m : Real; // Steigung der Geraden
deg_cor : Real; // Korrekturwinkel
radius: Integer;
// Berechnungen
pz.X := p1.X + (p2.X - p1.X) DIV 2;
pz.y := p1.y + (p2.y - p1.y) DIV 2;
m := (p2.Y - p1.Y)/(p2.x -p1.X);
deg_cor: radtodeg(arctan(m));
radius := h;
p3.x:=pz.x+round(radius*cos(( (90+deg_cor)*pi/180)));
p3.y:=pz.y+round(radius*sin(( (90+deg_cor)*pi/180)));
Sollte auch in etwa so gehen,
Einen Halbkreis mit dem Radius h um den Mittelpunkt der Gerade schlagen
der Endpunkt liegt bei 90 Grad auf dem Halbkreis.
Grüße
Klaus