Kreis Teile Zeichnen [gelöst]
Kreis Teile Zeichnen [gelöst]
Hi,
ich hab Folgendes Problem:
Man stellt sich vor man hat einen Kreis, und bestimmte Teile von diesem Kreis müssen dicker und eine andere Farbe haben als die Restteile vom Kreis.
Es geht hier bei mir jetzt um:
4tel Kreis
5tel Kreis
8tel Kreis
Stücke.
Nun hab ich das mit QRectF versucht was aber nicht von erfolg gekrönt war.
Jetzt meine Frage:
Kann ich was anders außer QRectF dazu verwenden und wenns nur mit QRectF geht könnte mir jemand das erklären?
Gruß
Qt-nator
ich hab Folgendes Problem:
Man stellt sich vor man hat einen Kreis, und bestimmte Teile von diesem Kreis müssen dicker und eine andere Farbe haben als die Restteile vom Kreis.
Es geht hier bei mir jetzt um:
4tel Kreis
5tel Kreis
8tel Kreis
Stücke.
Nun hab ich das mit QRectF versucht was aber nicht von erfolg gekrönt war.
Jetzt meine Frage:
Kann ich was anders außer QRectF dazu verwenden und wenns nur mit QRectF geht könnte mir jemand das erklären?
Gruß
Qt-nator
Zuletzt geändert von Qt-nator am 1. Juli 2008 14:27, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
ja das ist so ungefähr das was ich brauche. Nur die Striche zur Mitte hin stören.
Also ich hab einen abgeschlossenen Kreis. Eine Durchgezogene Linie und auf diesem Kreis gibt es bestimmte stellen wo die Linie dicker sein muss.
Deswegen wollte ich die Linien einfach neu drüberzeichnen. Dafür brauch ich halt denn die Spezielen Kreis-Teile.
Und wenn ich dann weis wie ich so "Teile" erstellen kann dann ist das setzen ja kein Problem mehr.
Also ich hab einen abgeschlossenen Kreis. Eine Durchgezogene Linie und auf diesem Kreis gibt es bestimmte stellen wo die Linie dicker sein muss.
Deswegen wollte ich die Linien einfach neu drüberzeichnen. Dafür brauch ich halt denn die Spezielen Kreis-Teile.
Und wenn ich dann weis wie ich so "Teile" erstellen kann dann ist das setzen ja kein Problem mehr.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Meinst du"drawArc" ?
Also ich hab da jetzt mal was versucht und habe einen Kreis erstellt. Aber was ich noch nicht ganz verstehe ist die Positionierung und das setzen Punkte.
Also ich hab da jetzt mal was versucht und habe einen Kreis erstellt. Aber was ich noch nicht ganz verstehe ist die Positionierung und das setzen Punkte.
Code: Alles auswählen
QRectF rectangle(dWidthHalf - 80, dHeigthHalf -60, 80.0, 60.0);
int startAngle = 16;
int spanAngle = 90 * 16;
painter.drawArc(rectangle, startAngle, spanAngle);
int startAngle1 = 90 * 16;
painter.drawArc(rectangle, startAngle1, spanAngle);
int startAngle2 = 180 * 16;
painter.drawArc(rectangle, startAngle2, spanAngle);
int startAngle3 = 270 * 16;
painter.drawArc(rectangle, startAngle3, spanAngle);startAngle bedarf wohl keiner Erläuterung und spanAngle ist einfach der Winkel wie weit gezeichnet werden soll. 90*16=1440 = 4 Vollkreise, das wird es dann wohl nicht sein 
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.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
The startAngle and spanAngle must be specified in 1/16th of a degree, i.e. a full circle equals 5760 (16 * 360). Positive values for the angles mean counter-clockwise while negative values mean the clockwise direction. Zero degrees is at the 3 o'clock position.
Also ist das doch richtig. Gut.
Mein Problem ist das ich nicht ganz verstehe wie ich diesen Bogen positioniern kann.
Ich kann ja x,y,w und h übergeben. Nur verstehe ich das zusammen spiel nicht so ganz.
Also ist das doch richtig. Gut.
Mein Problem ist das ich nicht ganz verstehe wie ich diesen Bogen positioniern kann.
Ich kann ja x,y,w und h übergeben. Nur verstehe ich das zusammen spiel nicht so ganz.
Zuletzt geändert von Qt-nator am 30. Juni 2008 15:44, insgesamt 1-mal geändert.
Eiwei, man sollte vorher in die Doku guckenChristian81 hat geschrieben:doch - Qt rechnet hier in 1/16 Grad.
Christian81 hat geschrieben:Was sein Problem jetzt ist weiß ich aber trotzdem nicht.
Vermutlich wird das Rectangle falsch berechnet. Für Kreise braucht man ein Quadrat und kein Rechteck.
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.
Ich hab jetzt mal rumprobiert und bin durch Zufall da drauf gekommen:
Macht von einem Teil genau das was ich brauche. Nur hab ich die 55 und die 110 durch Probieren erhalten.
Und verstehen wie das mit dem drawArc funktioniert tu ich immernoch nicht.
Kann mir das nicht mal einer Erklären?
Wie ich start und end-Punkt meiner Linien setzen kann z.b.?
Code: Alles auswählen
QRectF rectangle(dWidthHalf - 55, dHeigthHalf - 55, 110.0, 110.0);
int startAngle = 45*16;
int spanAngle = -180* 16;
painter.drawArc(rectangle, startAngle, spanAngle);
Und verstehen wie das mit dem drawArc funktioniert tu ich immernoch nicht.
Kann mir das nicht mal einer Erklären?
Wie ich start und end-Punkt meiner Linien setzen kann z.b.?
- Dateianhänge
-
- Bild.GIF (9.13 KiB) 5429 mal betrachtet
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ich glaubedieser Aufruf ist verständlicher.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung