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


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