Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.608 Beiträge
 
#6

Re: Spirolaterkurve

  Alt 8. Okt 2007, 09:23
Gut.

Jetzt stell Dir mal vor, Du würdest diese Kurven von Hand auf einem Blatt Papier zeichnen müssen.
Wie würdest Du da vorgehen?

Du würdest im einfachsten Ansatz zu jedem x-Wert den korrespondierenden y-Wert ausrechnen, diese Punkte in ein Koordinatensystem einzeichnen und diese Punkte dann alá Malen nach Zahlen verbinden.

Das Koordinatensystem liefert Dir das Pixelsystem Deines Bildschirms. Hier musst Du nur aufpassen: X wird wie bekannt nach rechts aufgetragen, der Y-Wert 0 ist aber oben und wird größer, je weiter Du nach unten gehst. Also musst Du Deinen ausgerechneten Y-Wert von der gesamthöhe der Zeichenfläche abziehen, um die Kurve nicht gespiegelt zu zeichnen.

Je nachdem, wie groß Du das Zeichnen willst, musst Du eine entsprechende Skalierung wählen. Für jedes Pixel einen Wert zu nehmen dürfte nicht ansehnlich sein. Du könntest also z.B. 10 Pixel für einen Wert wählen, und rechnest dann in Zehntelschritten, also 0,1 ; 0,2 ; ... 0,9 ; 1,0. Das Ergebnis rundest Du auf eine Nachkommastelle. Dann das ganze mal 10 und Du hast Deine Wert -> Koordinaten Zuordnung.

Und wenn Du das dann von xMin bis xMax ausgerechnet hast (Stichwort zur Speicherung der Ergebnisse: Array), dann brauchst Du nur noch jeden Wert daraus als Pixel zu zeichnen und Du hast die Aufgabe gelöst.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat