Кривые
Обычная кривая — это набор выделенных пикселей на растровом дисплее (или точек на печатной странице), которые определяют периметр (или часть периметра) конического сечения. Нерегулярная кривая — это набор пикселей, определяющий кривую, которая не соответствует периметру конического сечения. Конечная точка исключается из кривой так же, как и из линии.
Когда приложение вызывает одну из функций рисования кривых, GDI разбивает кривую на несколько очень маленьких дискретных сегментов линий. После определения конечных точек (начальной и конечной точки) для каждого из этих сегментов линии GDI определяет, какие пиксели (или точки) определяют каждую линию, применяя ее DDA.
Приложение может нарисовать эллипс или часть эллипса, вызвав функцию Arc . Эта функция рисует кривую по периметру невидимого прямоугольника, называемого ограничивающим прямоугольником. Размер эллипса определяется двумя невидимыми радиалами, простирающимися от центра прямоугольника до сторон прямоугольника. На следующем рисунке показана дуга (часть эллипса), нарисованная с помощью функции Arc .
При вызове функции Arc приложение указывает координаты ограничивающего прямоугольника и радиалей. На предыдущем рисунке показан прямоугольник и радиалы с пунктирными линиями, а фактическая дуга была нарисована с помощью сплошной линии.
При рисовании дуги другого объекта приложение может вызывать функции SetArcDirection и GetArcDirection для управления направлением (по часовой стрелке или против часовой стрелки), в котором рисуется объект. Направление по умолчанию для рисования дуг и других объектов — против часовой стрелки.
В дополнение к рисованию эллипсов или частей эллипсов, приложения могут рисовать нерегулярные кривые, называемые кривыми Безье. Кривая Безье — это нерегулярная кривая, кривизна которой определяется четырьмя контрольными точками (p1, p2, p3 и p4). Контрольные точки p1 и p4 определяют начальную и конечную точки кривой, а контрольные точки p2 и p3 определяют форму кривой, помечая точки, в которых кривая меняет ориентацию, как показано на следующей схеме.
Приложение может рисовать нерегулярные кривые, вызывая функцию PolyBezier , предоставляя соответствующие контрольные точки.