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


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

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

Иллюстрация, показывающая сплайн безье с двумя конечными точками и двумя контрольными точками

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

Чтобы нарисовать сплайн Безье, вам потребуется графический объект и объект 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);

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

Иллюстрация, показывающая сплайн безье с двумя конечными точками, двумя контрольными точками и двумя тангенсными линиями

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

Иллюстрация, показывающая три сплайна безье