Поделиться через


Сплайны Безье в GDI+

Обновлен: Ноябрь 2007

Сплайн Безье — это кривая, задаваемая четырьмя точками: двумя конечными точками (p1 и p2) и двумя контрольными точками (c1 и c2). Кривая начинается в точке p1 и заканчивается в точке p2. Кривая не проходит через контрольные точки. Эти точки действуют на кривую как магниты, растягивая кривую в нужных направлениях и влияя на ее изгиб. На приведенном ниже рисунке демонстрируется кривая Безье и все ее конечные и контрольные точки.

Сплайны Безье

Обратите внимание, что кривая начинается в точке p1 и дальше идет в направлении контрольной точки c1. Касательная к кривой в точке p1 проходит через точку c1. А касательная линия в конечной точке p2 проходит через точку c2.

Рисование сплайнов Безье

Чтобы нарисовать сплайн Безье, требуются объекты Graphics и Pen. У экземпляра класса Graphics имеется метод DrawBezier, а в объекте Pen хранятся такие атрибуты, как толщина и цвет линии, с помощью которой выполняется рисование кривой. Объект Pen передается методу DrawBezier в качестве одного из аргументов. Остальные аргументы, передаваемые методу DrawBezier, задают конечные и контрольные точки сплайна. В приведенном ниже примере демонстрируется рисование сплайна Безье из начальной точки с координатами (0, 0) в конечную точку с координатами (100, 10), если контрольные точки имеют координаты (40, 20) и (80, 150).

myGraphics.DrawBezier(myPen, 0, 0, 40, 20, 80, 150, 100, 10)

myGraphics.DrawBezier(myPen, 0, 0, 40, 20, 80, 150, 100, 10);

На приведенном ниже рисунке изображена описанная выше кривая, контрольные точки и две касательные.

Сплайны Безье

Сплайны Безье были впервые разработаны Пьером Безье для использования в автомобильной промышленности. Эти кривые оказались востребованными во многих отраслях проектирования, в которых применяются компьютеры. Они также используются для задания контуров шрифтов. С помощью сплайнов Безье можно создавать множество различных фигур, некоторые из которых показаны на приведенном ниже рисунке.

Пути

См. также

Задачи

Практическое руководство. Создание объектов Graphics для рисования

Практическое руководство. Создание пера

Ссылки

System.Drawing.Graphics

System.Drawing.Pen

Другие ресурсы

Прямые и кривые линии и фигуры

Построение и рисование кривых