Hallo,
ich beschäftige mich gerade ein wenig mit dem Windows
Api, habe deshalb die
MSDN Beschreibung der beiden Funktionen studiert. Da steht zur Arc() Funktion folgendes:
Zitat:
The points (nLeftRect, nTopRect) and (nRightRect, nBottomRect) specify the bounding rectangle. An ellipse formed by the specified bounding rectangle defines the curve of the arc. The arc extends in the current drawing direction from the point where it intersects the radial from the center of the bounding rectangle to the (nXStartArc, nYStartArc) point. The arc ends where it intersects the radial from the center of the bounding rectangle to the (nXEndArc, nYEndArc) point. If the starting point and ending point are the same, a complete ellipse is drawn.
...center of the bounding rectangle ????
Das heißt, das vom Mittelpunkt (center) des Rechteckes, welches den Bogen umschließt gezeichnet wird.
Das hieße, daß der Mittelpinkt des Kreis- oder Ellipsenbogens
nicht die rechte untere oder linke obere Ecke oder Vis a Vis wäre. Je nachdem, ob der Bogen bei einem Fenster mit runden Ecken an der linken, rechten, oberen oder unteren Ecke läge.
Plausibler wäre mir aber, wenn der Bogen von der linken unteren zur rechten oberen, linken oberen zur rechten unteren, rechten oberen zur linken unteren .... verlaufen würde. Allerdings müsste dann noch festgelegt werden können, ob der Bogen konvex oder konkav zu verlaufen hat.
Wie das letzere festgelegt wird, habe ich noch gar nicht verstanden.
Da ich aber zur Übung des Umgangs mit den
API Funktionen mal die Arc() Funktion und danach die Pie Funktion selber schreiben will, es gibt ja noch die SetPixel Funktion und die Linienfunktion, mit deren Hilfe ich den Bogen und das Tortenstück zeichnen könnte. frage ich hier, wie der Bogen unter Zuhilfenahme der der Arc() und Pie() Funktion übergebenen Paramter zu zeichnen ist.
Pseudocode genügt. Pseudocode der mir die oben eingefügte englische Beschreibung der Arc Funktion verständlich macht. Ich gehe davon aus, das Windows beim Zeichnen von Buttons mit runden Ecken ebenfalls die Arc() Funktion benutzt und dann ja wissen muss, nicht nur Start und endpunkt des Bogens, sondern auch, ob der konvex oder konkav verlaufen muss (untere oder obere Ecken).
Hatte nicht mal hier ein User ein Tutorial zum Widows
API geschrieben?
Kann bitte mir mal einer den Link da hin geben?