Frage zu drawEllipse [gelöst]

Verschiedenes zu Qt
Antworten
Qt-nator
Beiträge: 153
Registriert: 18. Dezember 2007 10:31

Frage zu drawEllipse [gelöst]

Beitrag von Qt-nator »

Morgen,

so ich hätte mal eine Frage zu QPainter::drawEllipse.

Und zwar in der Doku gibts ja:

void QPainter::drawEllipse ( const QRectF & rectangle )

sowie

void QPainter::drawEllipse ( int x, int y, int width, int height )

Und meine Frage ist jetzt ob man auch irgendwie den radius eines Kreises einbinden kann?

und wie die Funktion hier genau funktioniert? Weil ich lass mir eine Ellipse zeichnen mit x = 0 y = 0 width = 10 height = 10 und dabei raus kommt ein kreis der genau an der Oberen Linken Ecke anliegt... kann man also

drawEllipse so benutzen das man den mittelpunkt eines Kreises und den Radius angibt??? oder ist das nicht möglich?

Danke
Zuletzt geändert von Qt-nator am 5. Februar 2008 10:31, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Bastel dir eine Funktion drawCircle, die dann drawEllipse aufruft. Das ist so simpel, das es die Trolls wohl nicht bedacht haben :-)
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
VuuRWerK
Beiträge: 82
Registriert: 11. Juni 2007 20:46
Wohnort: Dresden

Beitrag von VuuRWerK »

Wenn Du einen Kreis zeichen willst sind ja bekanntlich height/width identisch. Rechne einer dieser Werte durch 2, schwupps haste ein radius, war ja gar nicht so schwer, oder? :)
Den Mittelpunkt des Kreises bekommste Du indem Du den Koordinaten den Radius addierst, fertig :)

Ich wollt es eigentlich nicht machen aber heute ist Fastnacht und da bin ich mal nicht so :)
Zumal es wirklich sehr trivial ist.

Code: Alles auswählen

/**
 * @param (int) x x-coordinate from center of circle
 * @param (int) y y-coordinate from center of circle
 * @param (int) r Rradius of circle
 */
void drawCircle( int x, int y, int r ) {
    QPainter *painter = new QPainter( this->m_device );
    painter->drawEllipse( x - r, y - r, r * 2, r * 2 );
}
Gut Schuß
VuuRWerK ;)
Es gibt nur 3 natürliche Feinde des Programmierers: Tageslicht, frische Luft und das unerträgliche Gebrüll der Vögel.
Oft ist die Ursache des schwarzsehens lediglich ein verrutschen des Bretts vorm Kopf =)
Qt-nator
Beiträge: 153
Registriert: 18. Dezember 2007 10:31

Beitrag von Qt-nator »

Vielen Vielen dank.

Das ist klasse^^. Aber stimmt hätte ich auch selber drauf kommen können.

Danke
Antworten