Partilhar via


CDC::Arc

Desenha 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).

  • x 3
    Especifica a coordenada x do ponto que define o arco do ponto (em unidades lógicas) inicial.Esse ponto não precisa estar exatamente no arco.

  • y3
    Especifica a coordenada y do ponto que define o arco do ponto (em unidades lógicas) inicial.Esse ponto não precisa estar exatamente no arco.

  • x4
    Especifica a coordenada x do ponto que define o ponto de extremidade do arco (em unidades lógicas).Esse ponto não precisa estar exatamente no arco.

  • y4
    Especifica a coordenada y do ponto que define o ponto de extremidade do arco (em unidades lógicas).Esse ponto não precisa estar exatamente no arco.

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

  • ptStart
    Especifica as coordenadas x e y do ponto que define o arco do ponto (em unidades lógicas) inicial.Esse ponto não precisa estar exatamente no arco.Você pode passar em um PONTO estrutura ou um CPoint objeto para esse parâmetro.

  • ptEnd
    Especifica as coordenadas x e y do ponto que define o ponto final do arco (em unidades lógicas).Esse ponto não precisa estar exatamente no arco.Você pode passar em um PONTO estrutura ou um CPoint objeto para esse parâmetro.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

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

O ponto de partida real do arco é o ponto em que um raio extraído do centralizar do retângulo delimitador pelo ponto de partida especificado cruza a elipse.O ponto final real do arco é o ponto em que um raio extraído do centralizar do retângulo delimitador pelo ponto final especificado cruza a elipse.O arco é desenhado no sentido.Como um arco não é uma fechada, ele não foi preenchido.A largura e a altura do retângulo devem ser maior que 2 unidades e unidades menores que 32.767.

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

Classe CDC

Gráfico de hierarquia

CDC::Chord

Arc

Estrutura de ponto

RECT estrutura

Outros recursos

Membros do CDC