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