Сглаживание прямых и кривых линий
Обновлен: Ноябрь 2007
При рисовании линии с помощью интерфейса GDI+ для задания положения линии нужно указывать только начальную и конечную точку, а предоставлять данные о промежуточных точках линии не нужно. Интерфейс GDI+ взаимодействует с программным обеспечением драйвера экрана, чтобы определить, какие точки экрана должны быть высвечены, чтобы на конкретном устройстве возникло изображение линии.
Неровности
В приведенном ниже примере демонстрируется рисование прямой линии красного цвета из точки с координатами (4, 2) в точку с координатами (16, 10). Предположим, что начало координат расположено в верхнем левом углу экрана, а единицей измерения является точка (минимальный элемент изображения). Также предположим, что ось X направлена вправо, а ось Y — вниз. На приведенном ниже рисунке представлено увеличенное изображение красной линии, нарисованной на многоцветном фоне.
Красные точки, составляющие линию, непрозрачны. В линии отсутствуют частично прозрачные точки. Такой тип отрисовки линии делает ее неровной на вид, при определенном увеличении линия становится ступенчатой. При таком подходе к представлению линии теоретическая линия приближается ступенчатой последовательностью точек.
Сглаживание
Более сложные способы отрисовки прямых линий заключаются в использовании частично прозрачных точек наряду с абсолютно непрозрачными. Для точек линии задается либо чистый красный цвет, либо смешение красного с цветом фона, в зависимости от того, насколько близки эти точки к линии. Такой тип отрисовки линий называется сглаживанием, он позволяет отображать линии так, чтобы для человеческого глаза они выглядели более гладкими. На приведенном ниже рисунке изображены несколько точек в, цвет которых смешивается с цветом фона для образования сглаженной линии.
Сглаживание можно также применять для кривых. На приведенном ниже рисунке показано увеличенное изображение сглаженного эллипса.
На приведенном ниже рисунке тот же эллипс изображен в натуральную величину в двух вариантах — с применением и без применения сглаживания.
Чтобы рисовать прямые и кривые линии с использованием сглаживания, создайте экземпляр класса Graphics и присвойте его свойству SmoothingMode значение AntiAlias или HighQuality. После этого вызовите один из методов рисования этого же класса Graphics.
myGraphics.SmoothingMode = SmoothingMode.AntiAlias
myGraphics.DrawLine(myPen, 0, 0, 12, 8)
myGraphics.SmoothingMode = SmoothingMode.AntiAlias;
myGraphics.DrawLine(myPen, 0, 0, 12, 8);
См. также
Задачи
Практическое руководство. Сглаживание текста
Ссылки
System.Drawing.Drawing2D.SmoothingMode