Как скруглить заострённые вершины в векторном рисунке (алгоритм)

Многие начинающие разработчики игр сталкиваются с задачей рисования элементов интерфейса своей игры. Например, кнопок. Современные дизайнеры предпочитают создавать кнопки и прочие элементы интерфейса со скруглёнными углами.

Как нарисовать для кнопки или панели прямоугольник с закруглёнными вершинами? Все профессиональные графические редакторы содержат необходимые для этого инструменты.

К сожалению, в арсенале векторного редактора Scratch нет инструмента рисования прямоугольника с закруглёнными углами! Как же быть?

Можно попробовать поискать что-то похожее в библиотеке спрайтов. И там есть такая кнопка (см. рисунок)!

Кнопка с закруглёнными вершинами из библиотеки спрайтов Scratch
Кнопка с закруглёнными вершинами из библиотеки спрайтов Scratch

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

Когда слишком много трудностей с изменением чего-то готового, программисты предпочитают сделать всё своими руками! Давайте нарисуем свой прямоугольник со скруглёнными вершинами такого размера, который необходим, и с той степенью скругления углов, которая нужна!

Есть идеи, как это сделать на основе обычного прямоугольника, с нормальными "заострёнными" вершинами? ;)

Мы знаем, что в векторном редакторе при использовании инструмента Изменение формы есть кнопка Изогнуть (см. рисунок ниже). Попробуем её! На рисунке видно, что получается не очень аккуратно...

Многие начинающие разработчики игр сталкиваются с задачей рисования элементов интерфейса своей игры. Например, кнопок.-2

Можно, конечно, постараться и поработать с "усиками" около точки для изогнутой линии (позже, в другой статье будет рассказано, что же это за "усики" такие). Но это очень кропотливая работа, требующая не только внимания и усидчивости, но и времени, а также напряжения зрения.

Поэтому, как настоящие программисты, мы оптимизируем нашу работу и выполним следующий алгоритм скругления заострённых вершин!

Алгоритм скругления острых углов и вершин в векторной графике Scratch на примере прямоугольника
Алгоритм скругления острых углов и вершин в векторной графике Scratch на примере прямоугольника

Несмотря на то, что в алгоритме показано, как скруглить вершины прямоугольника, этот принцип можно использовать и во многих других случаях. Например, ёлка, которая была создана из треугольников, после выполнения операции скругления стала нежнее, сказочнее, праздничнее. Согласны?

Ёлка со скруглёнными углами
Ёлка со скруглёнными углами

Делитесь своими шедеврами! Творческих успехов!

Ставьте лайки, подписывайтесь на канал, пишите в комментариях, какие ещё алгоритмы нужны, и получайте новые!

Хотите научиться создавать свои CG-рисунки, мультфильмы, игры? Записывайтесь на индивидуальные уроки!

Автор алгоритма и инфографики - Ольга Елисеева.

Заполните и отправьте форму опроса с сайта и получите все алгоритмы для CG-художников в высоком разрешении! Вы сможете их распечатать либо демонстрировать на большом экране без потери качества.