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


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

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

Screenshot of a Bézier spline, which shows its endpoints and control points.

Кривая начинается с точки p1 и идет в направлении к контрольной точке c1. Касательная линия к кривой в точке p1 — это линия, проходящая от точки p1 до точки c1. Касательная линия в конечной точке p2 — это линия, проходящая от точки c2 до точки p2.

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

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

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

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

Screenshot of the Bézier spline, which shows the curve, the control points, and two tangent lines.

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

Paths

См. также