Окт 13

Дуги

Дуги в Windows рисуются как часть эллипса. Размеры и расположение эллипса определяются ограничивающим прямоугольником. Ограничивающий прямоугольник задается координатами левой верхней и правой нижней вершин. Если обозначить эти координаты как (xLeft, yTop) и (xRight, yBottom), тогда центром эллипса будет точка (хО, уО), где хО = xLeft + (xRight - xLeft)/2, a yO = yTop + (yBottom - yTop)/2.
Параметры со второго по пятый задают вершины ограничивающего прямоугольника. Начало и конец дуги определяются начальным и конечным углами, которые задаются косвенно через две дополнительные точки с координатами (xStart, yStart) и (xEnd, yEnd). Начало дуги — это пересечение эллипса с лучом, который начинается в центре эллипса и проходит через точку (xStart, yStart). Конец дуги — это пересечение эллипса с лучом, который начинается в центре эллипса и проходит через точку (xEnd, yEnd). Все координаты задаются в логических единицах.
В Windows 95/98 дуга рисуется против часовой стрелки. В Windows NT/2000 направление дуги определяется соответствующим атрибутом в контексте устройства, значение которого можно получить вызовом функции GetArcDirection или установить вызовом функции SetArcDirection. Когда вы пользуетесь функцией SetArcDirection, в качестве второго параметра можно передать одно из значений: AD_COUNTERCLOCKWISE, устанавливающее режим рисования против часовой стрелки, либо AD_CLOCKWISE, устанавливающее режим рисования по часовой стрелке. По умолчанию в контексте устройства используется значение AD_ COUNTERCLOCKWISE.