Hallo,
Leider muss ich noch mal nerven. In diesem Thread hier:
http://www.delphipraxis.net/187210-e...ml#post1320849
hatte ich versucht, eine eigene Pie Funktion zu schreiben, aber inzwischen aufgegeben. Nicht nur, weil ich den Fahler nicht finde, sondern auch, weil ich im
WinAPI Verständnis voran kommen will.
Laut
MSDN liegt wie bei der Ellipse der Bogen eines Tortenstückes Pie innerhalb eines mit anzugebenden Rechteckes.
Nun meine Fragen:
In Luckies Demo befindet sich folgende Pie() Funktion:
Pie(WndDC, 300, 110, 500, 200, 310, 110, 200, 260);
Das ergibt folgendes Rechteck als Schablone für den Ellipsenbogen:
Leider kann ich hier in meinem ersten Beitrag keine Dateien mehr anhängen. Deshalb hole ich das in meinem nächten Folgebeitrag nach.
Der Mittelpunkt des Rechteckes und so auch der Ellipse liegt demnach bei:
Xm := ((500 - 300) div2) + 300
Xm := (200 div 2) + 300
Xm := 100 + 300
Xm = 400
Ym := ((260 - 110) div 2) + 110
Ym := (150 div 2) + 110
Ym := 75 + 110
Ym := 185
So weit, so gut.
Aber nach
MSDN Doku sind die beiden letzten x,y Kooridinaten die Enddpunkte der Strahlen, faktisch die Schnittpunkte der Strahlen mit der Ellipse, die aber nach Definition innerhalb des Rechteckes liegt.
Aber der Endpunkt des Zweiten Strahles liegt außerhalb des die Ellipse umschließenden Rechteckes:
X = 200 ---> Kleiner als X = 300
Y = 260 ---> untere Kante des Rechteckes, ist nur im Punkt Xm,Ym Schnittpunkt zwischen Ellipse und Rechteck.
Warum wird dann dennoch das Tortenstück gezeichnet. Das
MSDN sagt, in der Funktion werden keine Koordinatenanpassungen vorgenommen, heißt für mich, wenn die Koordinaten falsch sind, wird nichts gezeichnet.
Wo liegt hier mein Denkfehler.
Ich beziehe mich hier auf die Windows API Originalfunktion Pie().
[EDIT]
In meiner Vorschau wird das Rechteck korrekt angezeigt. Warum dann nicht im abgesendeten Beitrag?
[/Edit]