Для
рисования эллипса необходимо вызвать функцию
Ellipse(), которая в wingdi.h описывается следующим
образом:
WINGDIAPI BOOL WINAPI Ellipse(HDC, int, int, int, int);
Первый аргумент - это, как всегда,
контекст устройства. Для того чтобы понять, как
определяется эллипс, предлагаю читателю
обратиться к рисунку:
Определение аргумента функции Ellipse():

Как видно из рисунка, эллипс ограничен
прямоугольником. Именно через координаты этого
прямоугольника и определяется прорисовываемый
эллипс. Второй и третий аргументы - координаты
левого верхнего угла прямоугольника (на рисунке
обозначены как UpX, UpY), четвертый и пятый аргументы
- координаты нижнего правого угла (на рисунке
обозначены как LowX, LowY).
Окружность является частным случаем
эллипса. И в данном случае, если мы определим
прямоугольник, у которого ширина равна высоте,
т.е. квадрат, вместо эллипса получим окружность.
Как эллипс, так и окружность после
прорисовки заполняются цветом и атрибутами
текущей кисти. |