Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
4.233 Beiträge
 
Delphi 12 Athens
 
#7

AW: Ellipsenalgo aus Formelsammlung kreieren

  Alt Gestern, 13:07
Vielleicht ist es besser, die Laufvariable parametrisch zu Normieren und nicht als Winkel zu übernehmen.
Dann kann man das Rendering etwass besser steuern.

So ungefähr meine ich, ungetestet:

Delphi-Quellcode:
// Zeichnet eine Ellipse mit Mittelpunkt (xm, ym), Radien xR, yR,
// zwischen Startwinkel stangle und Endwinkel endangle (in Grad),
// mit numSteps Schritten für gleichmäßigere Punktverteilung
procedure DrawEllipse(xm, ym, xR, yR, stangle, endangle: Extended; numSteps: Integer);
var
  t, tStart, tEnd, tStep: Extended;
  i: Integer;
  x, y: Extended;
begin
  if numSteps < 1 then Exit; // Sicherheitsprüfung

  // Winkel in Radiant umrechnen
  tStart := DegToRad(stangle);
  tEnd := DegToRad(endangle);
  
  // Normierter Parameter t von tStart bis tEnd
  tStep := (tEnd - tStart) / numSteps;

  // Zeichne Punkte entlang der Ellipse
  for i := 0 to numSteps do
  begin
    t := tStart + i * tStep;
    // Parametrische Darstellung der Ellipse
    x := xm + xR * Cos(t);
    y := ym + yR * Sin(t);
    DrawPixel(Round(x), Round(y)); // Zeichne Pixel
  end;
end;

Geändert von Rollo62 (Gestern um 13:37 Uhr)
  Mit Zitat antworten Zitat