Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.739 Beiträge
 
Delphi 2007 Professional
 
#10

AW: Re: Windows GDI ArcTo: Tutorial

  Alt 5. Feb 2013, 08:48
Ok, soweit klar. Was aber noch nicht klar ist, sind die Punkte X3,Y3 und X4,Y4.

Sind das die Schnittpunkte mit der Ellipse oder mit dem die Ellipse umspannenden Rechteck.
Es sind irgendwelche Punkte, die in der "richtigen" Richtung liegen. Es müssen nicht die Schnittpunkte mit Ellipse oder umschreibendem Rechteck sein - siehe die n...Arc-Koordinaten im oben verlinkten Bildchen.

Wenn das die Schnittpunkte mit dem Ellipsenbogen sind, wo finde ich dann passende Ellipsengleichungen? Ich habe seit Turbopascal nichts mehr mit solchen Grafikfunktionen gemacht, weiß aber, das Turbo Pascal statt der Punkte X3,Y3 und X4,Y4 Anfangs und Endwinkel verlangt. Ich muss also Umdenken und statt Anfangs und Endwinkel ausdiesen beiden Winkeln die hier geforderten Punkte berechnen.
Irgendwie so (ungetestet):
Delphi-Quellcode:
function CalcPoint(const AMittelPunkt: TPoint; ARadius, AWinkel: Extended): TPoint;
var
  Sin, Cos: Extended;
begin
  SinCos(AWinkel, Sin, Cos);
  Result.X := AMittelPunkt.X + Round(ARadius * Cos);
  Result.Y := AMittelPunkt.Y + Round(ARadius * Sin);
end;
Den Radius kannst du dir theoretisch nach Gusto aussuchen - in der Praxis gibt's natürlich Rundungseffekte. Drum würde ich ihn nicht zu klein wählen, z.B. die Breite oder Höhe des Rechtecks.
Uli Gerhardt
  Mit Zitat antworten Zitat