Возьмем из файла wingdi.h описание функции Arc(), которая используется для рисования дуги:
WINGDIAPI BOOL WINAPI Arc(HDC, int, int, int, int, int, int, int, int);Первые пять аргументов полностью аналогичны аргументам функции Ellipse(). Непосредственно дуга определяется еще двумя точками. Первая - начало дуги - находится на пересечении эллипса, частью которого является дуга, и прямой, проходящей через центр прямоугольника и точку начала дуги. На рисунке начало дуги обозначено StartX, StartY. Вторая - конец дуги - определяется аналогично. Конец дуги обозначен EndX, EndY. Таким образом, для прорисовки дуги необходимо сначала определить точки StartX, StartY и EndX, EndY, после чего прорисовывать дугу. Дуга прорисовывается против часовой стрелки.
У функции Pie(), которая применяется для рисования сектора эллипса, набор аргументов и их обозначения абсолютно идентичны функции Arc().