Поделиться через


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

См. также

Ссылки

Класс CDC

Диаграмма иерархии

CDC::Chord

Arc

Структура POINT

Структура RECT