CDC::Arc
Dibuja un 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 la coordenada x de la esquina superior izquierda del rectángulo delimitador (en unidades lógicas).y1
Especifica la coordenada y de la esquina superior izquierda del rectángulo delimitador (en unidades lógicas).x2
Especifica la coordenada x de la esquina inferior derecha del rectángulo delimitador (en unidades lógicas).y2
Especifica la coordenada y de la esquina inferior derecha del rectángulo delimitador (en unidades lógicas).x3
Especifica la coordenada x del punto que define el punto inicial del arco (en unidades lógicas).este punto no tiene que mentir exactamente en el arco.y3
Especifica la coordenada y del punto que define el punto inicial del arco (en unidades lógicas).este punto no tiene que mentir exactamente en el arco.x4
Especifica la coordenada x del punto que define el extremo del arco (en unidades lógicas).este punto no tiene que mentir exactamente en el arco.y4
Especifica la coordenada y del punto que define el extremo del arco (en unidades lógicas).este punto no tiene que mentir exactamente en el arco.lpRect
especifica el rectángulo delimitador (en unidades lógicas).Puede pasar LPRECT o un objeto de CRect para este parámetro.ptStart
Especifica las coordenadas x e y del punto que define el punto inicial del arco (en unidades lógicas).este punto no tiene que mentir exactamente en el arco.Puede pasar una estructura de puntos o un objeto de CPoint para este parámetro.ptEnd
Especifica las coordenadas x e y del punto que define el punto del final del arco (en unidades lógicas).este punto no tiene que mentir exactamente en el arco.Puede pasar una estructura de puntos o un objeto de CPoint para este parámetro.
Valor devuelto
Distinto de cero si la función es correcta; si no 0.
Comentarios
El arco dibujado con la función es un segmento de la elipse definida por el rectángulo delimitador especificado.
El punto de inicio real del arco es el punto en el que un rayo dibujado desde el centro del rectángulo delimitador a través del punto de inicio especificado forma una intersección con la elipse.El extremo real del arco es el punto en el que un rayo dibujado desde el centro del rectángulo delimitador a través del extremo especificado forma una intersección con la elipse.El arco se dibuja en una dirección inicial.puesto que un arco no es una figura cerrada, no se rellena.El ancho y el alto del rectángulo deben ser mayores que 2 unidades y menos de 32.767 unidades.
Ejemplo
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
encabezado: afxwin.h