Kreisdiagram einfärben
-
COLORREF r = RGB(131,133,226), g = RGB(19,236,187), b = RGB(0,0,255), sw= RGB(255,255,255); CBrush RedBrush(r); CBrush BlueBrush(b); CBrush GreenBrush(g); pDC->SelectObject(&GreenBrush); //-------------------------------------------------------------------------------------+ // Kreis Zeichnen ANFANG ! //-------------------------------------------------------------------------------------+ //------------------------------------------------------------------+ // Pens ! //------------------------------------------------------------------+ CPen PenLin1(PS_SOLID,1,RGB(255,255,255)); oldPen = pDC->SelectObject(&PenLin1); CRect rect(90,90,300,300); //Zeichenfläche CPoint center(static_cast<int>((rect.right-rect.left)/2+rect.left), static_cast<int>((rect.bottom-rect.top)/2+rect.top)); int radius = (rect.right-rect.left)/2; if(m_Co==0||m_Co==2) { tSchneid=diff0-diff2 ,//1 tWarte=diff1 , tRuest=diff1;//10 tGesamt = tSchneid + tWarte + tRuest; } pDC->Ellipse(rect); //erster Teilstrich von Mitte nach oben pDC->MoveTo(center); pDC->LineTo(center.x, center.y-radius); //Schneidzeit winkel berechnen double winkel = tSchneid*(2*M_PI/tGesamt);//winkel in ° //Ruestzeit winkel berechnen double winkel2= tRuest*(2*M_PI/tGesamt); //Schneidzeit zeichnen pDC->MoveTo(center); pDC->LineTo(center.x + sin(winkel)*radius, center.y - cos(winkel)*radius); //Fläche einfärben pDC->ExtFloodFill(200, 200, r,FLOODFILLSURFACE);//200,200 //Ruestzeit zeichnen pDC->MoveTo(center); pDC->LineTo(center.x -sin(winkel2)*radius, center.y- cos(winkel2)*radius); //Fläche einfärben pDC->ExtFloodFill(200, 200, b,FLOODFILLSURFACE);
Hallo,
Ich zeichne oben auf ein Dialog ein Kreisdiagramm (Chart) und ich teile diese kreis diagramm in 3 teile. Für jedes teil berechne ich einen Winkel wie oben
und ich möchte jedes teil des KReisdiagramms mit verschiedene Farben einfärben.Mein Problem ist , ich kann diese Kreisdiagramm in 3 teile teilen aber die farben sind bei alle teile gleich. Obwohl ich jedes teil mit verschiedene farben
einfärben.
Wenn mir jemand helfen könnte , würde ich mich sehr freuen.Danke im Voraus für die Unterstützung
-
keine Hilfe !!!???
-
1. Zeile der Doku zu ExtFloodFill:
Fills an area of the display surface with the current brush.
Also CBrush anlegen und mit SelectObject umschalten vor dem Zeichnen!
-
Vielen Dank für deine Antwort
CBrush ist oben schon angelegt. Was meinst du mit "SelectObject umschalten vor dem Zeichnen" kannst du mal bitte deutlicher erklären. Oder eine kurze Änderung bei der Code zeigen bitte.
Wie sollte ich das ändern?
-
Ja! Du musst die Farbe selektieren mit der Du zeichnen möchtes. Ja mit SelectObject. Dasmachst Du doch schon, aber eben nur mit einer Farbe.
Wie wäre es mit dem Lesen eines kleinen Tutorials?