Partilhar via


CDC::Arc

Desenhar um arco elíptico.

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 
);

Parâmetros

  • x1
    Especifica a coordenada x do canto superior esquerdo do retângulo delimitador (em unidades lógicas).

  • y1
    Especifica a coordenada y do canto superior esquerdo do retângulo delimitador (em unidades lógicas).

  • x2
    Especifica a coordenada x do canto inferior direito do retângulo delimitador (em unidades lógicas).

  • y2
    Especifica a coordenada y do canto inferior direito do retângulo delimitador (em unidades lógicas).

  • x3
    Especifica a coordenada x do ponto que define o ponto de partida do arco (em unidades lógicas).Este ponto não tem que encontrar-se exatamente do arco.

  • y3
    Especifica a coordenada y do ponto que define o ponto de partida do arco (em unidades lógicas).Este ponto não tem que encontrar-se exatamente do arco.

  • x4
    Especifica a coordenada x do ponto que define o ponto final do arco (em unidades lógicas).Este ponto não tem que encontrar-se exatamente do arco.

  • y4
    Especifica a coordenada y do ponto que define o ponto final do arco (em unidades lógicas).Este ponto não tem que encontrar-se exatamente do arco.

  • lpRect
    Especifica o retângulo delimitador (em unidades lógicas).Você pode passar LPRECT ou um objeto de CRect para esse parâmetro.

  • ptStart
    Especifica o x e y do ponto que define o ponto de partida do arco (em unidades lógicas).Este ponto não tem que encontrar-se exatamente do arco.Você pode passar uma estrutura de PONTO ou um objeto de CPoint para esse parâmetro.

  • ptEnd
    Especifica o x e y do ponto que define o ponto final do arco (em unidades lógicas).Este ponto não tem que encontrar-se exatamente do arco.Você pode passar uma estrutura de POINT ou um objeto de CPoint para esse parâmetro.

Valor de retorno

Diferente de zero se a função é com êxito; se não 0.

Comentários

O arco é desenhado usando a função um segmento da elipse definida pelo retângulo delimitador especificado.

O ponto de partida real do arco é o ponto em que um raio desenhado central do retângulo delimitador pelo ponto de partida especificado cruza a elipse.O ponto final real do arco é o ponto em que um raio desenhado central do retângulo delimitador pelo ponto final especificado cruza a elipse.o arco é desenhado em um sentido anti-horário.Desde que um arco não é uma figura fechada, não é preenchido.A largura e altura do retângulo devem ser maiores que 2 unidades e menor que 32.767 unidades.

Exemplo

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);
}

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

CDC Class

Gráfico de hierarquia

CDC::Chord

Arc

Estrutura do ponto

Estrutura RECT