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