CDC::Arc
Рисует эллиптической дуги.
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
);
Параметры
x1
Указывает координату по оси x верхнего левого угла ограничивающего прямоугольника верхн- (в логических единицах).y1
Указывает координату по оси y верхнего левого угла ограничивающего прямоугольника верхн- (в логических единицах).x2
Задает координату правого верхнего угла ограничивающего прямоугольника по оси x низк- (в логических единицах).y2
Указывает координату по оси y правого верхнего угла ограничивающего прямоугольника низк- (в логических единицах).x3
Указывает координату х точки, который определяет начальную точку дуги (в логических единицах).Данная точка не должен находиться на дуге.y3
Указывает координату y точки, который определяет начальную точку дуги (в логических единицах).Данная точка не должен находиться на дуге.x4
Указывает координату х точки, задающий конечную точка дуги (в логических единицах).Данная точка не должен находиться на дуге.y4
Указывает координату y точки, задающий конечную точка дуги (в логических единицах).Данная точка не должен находиться на дуге.lpRect
Указывает ограничивающий прямоугольник (в логических единицах).Можно передать или LPRECT или объект CRect для этого параметра.ptStart
Определяет координаты x и y точки, который определяет начальную точку дуги (в логических единицах).Данная точка не должен находиться на дуге.Можно передавать или структуру ТОЧКА или объект CPoint для этого параметра.ptEnd
Определяет координаты x и y точки, в котором указывается конечная точка дуги (в логических единицах).Данная точка не должен находиться на дуге.Можно передавать или структуру POINT или объект CPoint для этого параметра.
Возвращаемое значение
Ненулевой если функция успешно; в противном случае – значение 0.
Заметки
Дуга выписанная с помощью функции сегмент эллипса, определяемого ограничивающим прямоугольником, заданным.
Фактическая начальная точка дуги точку, в которой луч, нарисованный из центра ограничивающего прямоугольника с помощью заданную начальную точку пересечения эллипс.Фактический конечная точка дуги точку, в которой луч, нарисованный из центра ограничивающего прямоугольника с помощью указанного конечную точку пересечения эллипс.Дуга нарисована в направлении против часовых стрелок.Поскольку дуга является закрытой диаграммы, она не заполнена.И ширину и высоту прямоугольника должно быть больше 2 единиц и меньше 32.767 единиц.
Пример
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);
}
Требования
Header: afxwin.h