Internetpräsenz Peter Lenhard

Navigation:

  • Startseite
  • Software RuheVis
  • Freiberufliche Tätigkeiten
  • Angestellter Software-Entwickler
  • Software
    • SagsMir
    • html_pp
    • Ellipse
    • Speichenlänge
  • Radtouren
  • GPS-Maus navibe GM720
  • Impressum/Kontakt
  • Datenschutzerklärung

Ellipsen effizient zeichen (contribution to wxWidgets)

Als kleinen Beitrag für das freie portable Framework wxWidgets habe ich eine Methode zum Zeichnen von Ellipsen beigesteuert.

Hintergrund:
Bei der Portierung der Bibliothek wxWidgets auf Windows CE stellte sich heraus, dass die Fähigkeiten dieses kleinen Betriebssystems bezüglich der Ausgabe von Ellipsen und Ellipsenbögen gegenüber Windows beschnitten sind.
Es wurde ein nach einer Implementierung gesucht, die Ellipsenbögen zeichnen kann.
Dieser Aufgabe habe ich mich angenommen, um dem Projekt, von dem ich profitieren, auch einmal etwas zurückzugeben.

Die Methode zeichnet effizient, indem sie pixelweise die Knickpunkte berechnet, zwischen denen dann Geraden gezeichnet werden.
Das Ergebnis ist in den Pixeln identisch zum Ergebnis der entsprechenden Funktion in der Windows-API.
Für gewöhnliche Ellipsen werden keine trigonometrischen Berechnungen durchgeführt.
Die Methode kann mit Anfangs- und Endwinkel auch Segmente zeichnen.
Ellipsen und Segmente können auch gedreht gezeichnet werden.
In den beiden letzten Fällen werden einige wenige trigonometrische Berechnungen angestellt.
Die Performanz ist immerhin ein Drittel der nativen Funktion.

Zum Zeichnen werden die vorhandene Methoden aus wxWidgets verwendet, sodass Farben und Linienstile korrekt wiedergegeben werden.

Die Codierung ist in die Bibliothek wxWidgets eingeflossen, dort wird die Möglichkeit zur Rotation von Ellipsen und Ellipsenbögen aber derzeit nicht genutzt.

Am Quelltext Interessierte klicken hier zum Download.