Entwickler-Ecke
Sonstiges (.NET) - Anzahl an benötigten Pixel für Ellipse berechnen
Kasko - Mo 06.08.18 23:45
Titel: Anzahl an benötigten Pixel für Ellipse berechnen
Wie berechne ich die Anzahl an Pixel, die benötigt werden um eine durchgezogene Ellipse mit Liniendicke = 1 zu zeichnen. Gegeben sich die Höhe und die Breite des umschließenden Rechteckes (in Pixel).
Es geht wirklich nur um die Anzahl, nicht um Position, etc. der Pixel. Ich berechne die Ellipse anhand einer "Winkeliteration" (keine Ahnung ob es dieses Wort gibt). Das heißt, ich gehe von 0° bis 360° und berechne anhand dessen die entsprechenden Pixel. Wenn ich nun nach jeder Berechnung den Winkel um 1 erhöhe bekomme ich 360 Punkte/Pixel. Das bedeutet aber noch lange nicht, dass es genug sind und es eine durchgezogene Ellipse ist, oder vielleicht sind es auch viel zu viele. Deshalb möchte ich vorher ausrechnen wie viele Punkte benötigt werden und dementsprechend die Iteration anpassen.
Edit:
Alternativ könnt ihr mir auch helfen die Ellipsengleichung
(x^2)/(xRadius^2) + (y^2)/(yRadius^2) = 1 zu implementieren, da diese Gleichung für jedes x und y mehrere Lösungen hat. Dies würde die Frage wie ich die Anzahl der Pixel berechne erübrigen.
Moderiert von Th69: Code-Tags hinzugefügt
Horst_H - Di 07.08.18 06:05
Hallo,
sieh mal bei "Bresenham-Algorithmus" nach:
https://de.wikipedia.org/wiki/Bresenham-Algorithmus#Ellipsen
Statt die 4 Setpixel(..) kannst Du ja einfach einen Zähkler um 4 erhöhen.
Wenn Du Dir die Zeichnung für den Kreis auf der Seite anschaust:
EDIT:
r= 12 Pixel sind es im Bild 17 Pixel für den 1/4-Kreis.Dabei ist ein Pixel schon vom nächsten Viertelkreis also 16 Pixel.
Also Pixel für Viertelkreis mit Radius r irgendwo zwischen 17/12 und 16/12 = 1,417 und 1.333.
Gruß Horst
Kasko - Do 09.08.18 01:04
Das gilt jedoch für einen Kreis mit einem einheitlichen Radius. Eine Ellipse besitzt jedoch 2 Radien und je nachdem welchen man verändert, verändert sich die Anzahl der Pixel unterschiedlich.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!