Udostępnij za pośrednictwem


CDC::pie

Rysuje kołowy w kształcie klina przez rysowanie łuku eliptycznego, których Centrum i dwa punkty końcowe są połączone liniami.

BOOL Pie(
   int x1,
   int y1,
   int x2,
   int y2,
   int x3,
   int y3,
   int x4,
   int y4 
);
BOOL Pie(
   LPCRECT lpRect,
   POINT ptStart,
   POINT ptEnd 
);

Parametry

  • x1
    Określa współrzędną x lewego górnego rogu prostokąta obwiedni (w jednostkach logicznych).

  • y1
    Określa współrzędną y lewego górnego rogu prostokąta obwiedni (w jednostkach logicznych).

  • x2
    Określa współrzędną x w prawym dolnym rogu prostokąta obwiedni (w jednostkach logicznych).

  • y2
    Określa współrzędną y dolnym rogu prostokąta obwiedni (w jednostkach logicznych).

  • x 3
    Określa współrzędną x punktu początkowego łuku (w jednostkach logicznych).Ten punkt nie musi znajdować się dokładnie na łuku.

  • y3
    Określa współrzędną y punktu początkowego łuku (w jednostkach logicznych).Ten punkt nie musi znajdować się dokładnie na łuku.

  • x4
    Określa współrzędną x punktu końcowego łuku (w jednostkach logicznych).Ten punkt nie musi znajdować się dokładnie na łuku.

  • y4
    Określa współrzędną y punktu końcowego łuku (w jednostkach logicznych).Ten punkt nie musi znajdować się dokładnie na łuku.

  • lpRect
    Określa prostokąta obwiedni.Można przekazywać albo CRect lub wskaźnik do obiektu RECT struktury dla tego parametru.

  • ptStart
    Określa początkowy punkt łuku.Ten punkt nie musi znajdować się dokładnie na łuku.Można przekazywać albo punkt struktury lub CPoint obiektu dla tego parametru.

  • ptEnd
    Określa punktu końcowego łuku.Ten punkt nie musi znajdować się dokładnie na łuku.Można przekazywać albo punkt struktury lub CPoint obiektu dla tego parametru.

Wartość zwracana

Niezerowa, jeśli funkcja jest pomyślne; 0 inaczej.

Uwagi

Pośrodku łuku jest środek prostokąta obwiedni, określonej przez x1, y1, x2, i y2 (lub lpRect).Początkowe i końcowe punkty łuku są określone przez x 3, y3, x4, i y4 (lub ptStart i ptEnd).

Łuku dla wybranego pióra w kierunku przeciwnym kierunku.Dwa dodatkowe wiersze są pobierane z każdego punktu końcowego łuku Centrum.Kształt kołowego obszar jest wypełniany aktualnego pędzla.Jeśli x 3 jest równe x4 i y3 jest równe y4, wynik jest elipsę o jednym wierszu środka elipsy do punktu (x 3, y3) lub (x4, y4).

Rysunek przez tę funkcję rozciąga się do, ale nie obejmuje współrzędne prawej i dolnej.Oznacza to, że wysokość rysunku jest y2 — y1 i szerokości rysunku jest x2 — x1.Szerokość i wysokość prostokąta obwiedni musi być większa niż 2 i jednostek mniej niż 32 767.

Przykład

void CDCView::DrawPie(CDC* pDC)
{
   // Fill the client area with a simple pie chart. A
   // big blue slice covers 75% of the pie, from
   // 6 o'clock to 3 o'clock. This portion is filled
   // with blue and has a blue edge. The remaining 25%
   // is filled with a red, diagonal hatch and has
   // a red edge.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush* pOldBrush;
   CPen* pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.

   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Pie(rectClient,
      CPoint(rectClient.right, rectClient.CenterPoint().y),
      CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter slice from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen with
   // the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Same parameters, but reverse start and end points.
   pDC->Pie(rectClient,
      CPoint(rectClient.CenterPoint().x, rectClient.right),
      CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CDC

Wykres hierarchii

CDC::Chord

Pie

Struktura RECT

Struktura punkt

Klasa CRect

Klasa CPoint