Condividi tramite


CDC::Arc

Consente di tracciare un arco ellittico.

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

Parametri

  • x1
    Specifica la coordinata x dell'angolo superiore sinistro del rettangolo di delimitazione (in unità logiche).

  • y1
    Specifica la coordinata y dell'angolo superiore sinistro del rettangolo di delimitazione (in unità logiche).

  • x2
    Specifica la coordinata x l'angolo inferiore destro del rettangolo di delimitazione (in unità logiche).

  • y2
    Specifica la coordinata y l'angolo inferiore destro del rettangolo di delimitazione (in unità logiche).

  • x3
    Specifica la coordinata x del punto che definisce il punto iniziale dell'arco (in unità logiche). Questo passaggio non deve rientrare esattamente nell'arco.

  • y3
    Specifica la coordinata y del punto che definisce il punto iniziale dell'arco (in unità logiche). Questo passaggio non deve rientrare esattamente nell'arco.

  • x4
    Specifica la coordinata x del punto in cui è definito endpoint dell'arco (in unità logiche). Questo passaggio non deve rientrare esattamente nell'arco.

  • y4
    Specifica la coordinata y del punto in cui è definito endpoint dell'arco (in unità logiche). Questo passaggio non deve rientrare esattamente nell'arco.

  • lpRect
    Specifica il rettangolo di delimitazione (in unità logiche). È possibile passare LPRECT o un oggetto CRect per questo parametro.

  • ptStart
    Specifica le coordinate x e y del punto che definisce il punto iniziale dell'arco (in unità logiche). Questo passaggio non deve rientrare esattamente nell'arco. È possibile passare una struttura QUESTION o un oggetto CPoint per questo parametro.

  • ptEnd
    Specifica le coordinate x e y del punto che definisce il punto finale dell'arco (in unità logiche). Questo passaggio non deve rientrare esattamente nell'arco. È possibile passare una struttura di punti o un oggetto CPoint per questo parametro.

Valore restituito

Diverso da zero se la funzione ha esito positivo; in caso contrario 0.

Note

L'arco tracciato utilizzando la funzione è un segmento di un'ellisse definita dal rettangolo di delimitazione specificato.

Il punto iniziale dell'arco è il punto in cui un raggio tracciato dal centro del rettangolo di delimitazione dal punto iniziale specificata interseca l'ellisse. Il punto finale dell'arco è il punto in cui un raggio tracciato dal centro del rettangolo di delimitazione dal punto finale specificato interseca l'ellisse. L'arco viene disegnato in un senso antiorario. Poiché un arco non è una figura chiusa, non viene soddisfatta. La larghezza e l'altezza del rettangolo devono essere maggiori di 2 unità e meno di 32.767 unità.

Esempio

void CDCView::DrawArc(CDC* pDC)
{
   // Fill the client area with a thin circle. The circle's 
   // interior is not filled. The circle's perimeter is 
   // blue from 6 o'clock to 3 o'clock and red from 3 
   // o'clock to 6 o'clock. 

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

   // Make a couple of pens.
   CPen penBlue;
   CPen penRed;
   CPen* pOldPen;

   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.

   pOldPen = pDC->SelectObject(&penBlue);

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

   // Draw from 6 o'clock to 3 o'clock, counterclockwise, 
   // in a red pen.
   pDC->SelectObject(&penRed);

   // Keep the same parameters, but reverse start 
   // and end points.
   pDC->Arc(rectClient,
      CPoint(rectClient.CenterPoint().x, rectClient.right),
      CPoint(rectClient.right, rectClient.CenterPoint().y));

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

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe CDC

Grafico delle gerarchie

CDC::Chord

Arc

Struttura POINT

Struttura RECT