Inkscape - закругление углов фигур?


78

В Inkscape закруглить углы прямоугольника очень просто: вы выбираете объект, нажимаете F4 (инструмент прямоугольник) и перетаскиваете круглые узлы.

Как вы делаете это для более сложных форм?

многоугольник и его округленный эквивалент

«Динамическое смещение» - почти правильная вещь, но оно не округляет внутренности вогнутого многоугольника.

Ответы:


17

Это кажется слабым местом в Inkscape, потому что нет простого способа сделать это. Лучший способ справиться с этим, который я нашел до сих пор:

  1. Сделайте несколько прямоугольников с закругленными углами, используя желаемый конечный радиус угла
  2. Приподнимите их друг против друга, чтобы сделать общую окончательную форму, не обращая внимания на места, где углы не встречаются из-за округлости,
  3. Путь-объединение их в один путь
  4. Исправьте посторонние вырезы, удалив их узлы.

К счастью, кто-то описал эту технику в Интернете с иллюстрациями (прокрутите немного вниз) http://www.inkscapeforum.com/viewtopic.php?f=5&t=880

Я надеюсь, что есть инструмент для редактирования пути, который может просто преобразовать путь туда, где вы (и пятьдесят тысяч других пользователей Inkscape), где-то там. Если нет, это сделало бы отличный проект кодирования выходного дня.


73
  1. Выберите прямоугольник или квадрат
  2. Выберите опцию узлов
  3. В правом углу вы увидите круглый узел вместо квадратного узла. Перетащите узел вниз, пока не получите нужный закругленный угол.

Опция узлов:

2. Опция узлов

Круглый виджет нужно перетащить, чтобы получить закругленные углы:

введите описание изображения здесь

Что происходит при перетаскивании круглого виджета:

введите описание изображения здесь

Как уже отмечали другие, это работает только на прямоугольниках (но это распространенный случай использования, при котором люди попадают на эту страницу).


1
Что это за «опция узлов»? Скриншоты были бы прекрасны.
RAnders00

15
Это отлично подходит для прямоугольников или квадратов, но как это помогает для более сложных фигур, таких как вопрос?
Том Пол

4
«В Inkscape закруглить углы прямоугольника легко», - отметил введение перед вопросом, прежде чем задавать вопрос о закруглении непрямоугольных фигур.
OJW

Следует отметить, что это, например, не будет правильно экспортировать в DXF. Вы можете использовать меню «Путь»> «Объект к пути (Shift-Ctrl-C)», чтобы создать реальный округленный путь.
Рокко

Я не хочу высказывать это, потому что это не отвечает на вопрос. С другой стороны, название вопроса подразумевает любую форму, и это полезно, поэтому я проголосовал за него.
Дэйв Ф

22

Этого можно добиться с помощью эффекта пути Fillet / Chamfer (в настоящее время доступен только в версии для разработчиков 0.91+devel, которую можно найти здесь ).

Вот как вы используете это:

  1. Выберите путь, который вы хотите изменить, и откройте вкладку эффектов пути под Path > Path Effects....

    Неизмененный путь

  2. Добавьте новый эффект в окне эффектов контура и выберите Fillet/Chamfer.

    введите описание изображения здесь

  3. Выберите радиус, который вы хотите применить к углам пути, и нажмите Filletкнопку.

    Филетированная дорожка

  4. Если вы хотите округлить только некоторые углы, отметьте Change only selected nodes boxи выберите узлы, которые вы хотите изменить в режиме редактирования пути, прежде чем Filletнажимать кнопку.


2
Этот эффект, кажется, добавлен в Inkscape 0.92, который не был выпущен во время написания этого комментария.
Леви Моррисон

1
Филе / Фаска отсутствует в версии 0.92pre1
Кристиан

1
@ChristianStrang выглядит так, как будто его еще нет в релизе 0.92 :(
Цилиндрический

2
Однако по состоянию на апрель 2017 года он еще не доступен, даже в версии для разработчиков (0.92.1preX). Эта функция была перемещена до уровня 0,93, как вы можете видеть на трекере ошибок . Таким образом, это не может быть достигнуто сейчас без строительства из экспериментальной ветви .
Ферран

1
Хорошие новости! Филе / фаска доступна в версии 1.0 альфа, которая была выпущена. В описании этого видео вы можете найти ссылку на предварительно скомпилированную версию Windows: youtube.com/watch?v=9lFI7qGFP7M
user1414213562

20

Еще одно временное решение проблем, но оно работает и для непрямоугольных фигур:

  1. Применить динамическое смещение к вашему объекту.
  2. Конвертировать объект в путь.
  3. Добавить узлы (в разделе « Расширения» → «Изменить путь» ). Это необязательно, но, скорее всего, значительно улучшит ваши результаты. Чем больше тем лучше.
  4. Примените динамическую вставку (т. Е. Отрицательное динамическое смещение ) к вашему объекту.
  5. При желании, преобразовать объект в путь еще раз и упростить.

3
см. также inkscape.org/doc/advanced/tutorial-advanced.html - вставка / смещение - ctrl + (и ctrl +), динамическое смещение - ctrl + J для добавления перетаскиваемого дескриптора
Джейсон С

17

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

  1. Выберите инструмент « Редактировать контуры по узлу» (F2) и выберите угловой узел, который вы хотите сделать закругленным.

  2. Удерживайте Ctrl-Altи слегка нажмите вдоль горизонтальной линии от угла, чтобы добавить новый узел.

  3. Сделайте то же самое снова, чтобы создать новый узел немного вдоль вертикальной линии, чтобы добавить еще один новый узел.
  4. На этом этапе я возвращаюсь к двум новым узлам и проверяю, чтобы они оба имели постоянное смещение от угла. например, 2 мм.
  5. Выберите угловой узел и нажмите, Delчтобы удалить его. Теперь ваш угол должен выглядеть так:

грубый угол

  1. Перетащите две точки Безье внизу слева, чтобы они образовали удовлетворительную кривую. Я держу Ctrlи выравниваю их друг над другом, чтобы они выглядели так:

выровненный


Отличное решение! Одно дополнение к шагу 3: я бы предложил использовать Extensions -> Modify Path -> Add Notes ...для добавления узлов, чтобы узлы находились на одинаковом расстоянии от края на каждом краю.
daniel.neumann

1
Однако это не так просто, если стороны ваших объектов не выровнены по прямоугольной сетке, а по диагонали или наклонены каким-либо образом.
Зельфир Кальцталь

5

Я использовал другой метод. Как только я привык к этому и узнал, как использовать параметры привязки, я обнаружил, что могу работать довольно быстро. Это лучше всего работает с путями, состоящими из ортогональных линий, параллельных оси.

  1. Вычтите круг, имеющий радиус, который вы хотите, из квадрата, чтобы создать форму «фрезы». Поместите центр круга на один из квадратных углов и определите размер квадрата как диаметр круга. Это гарантирует, что центр вашего резака будет выровнен с краями дуги:
    введите описание изображения здесь
  2. Дублируйте ваш резак, чтобы иметь возможность использовать его снова и выровняйте, поместите его в угол, который вы хотите скруглить. Активируйте привязку центров объектов и узлов острия, чтобы выровнять резак именно там, где вы хотите.введите описание изображения здесь
  3. При необходимости вращайте резак вдоль его центра, чтобы выровнять дугу с краями основного пути.
  4. Выберите исходный путь и резак и выполните логическое различие, если ваш угол выпуклый, или логическое объединение, если оно вогнутое. Ваш угол теперь закруглен!
  5. Дублируйте резак и повторите все углы, которые вы хотите.
  6. Если ваша первоначальная фигура была открыта, логическая операция закроет ее. Возможно, вам придется открыть его снова в конце процесса.

Вероятно, лучшее решение на данный момент (0.92.2)!
Рэй

3

Вдохновленный ответом bonaccia (спасибо вам за это), я обнаружил, что для получения контроля над закругленными углами вы можете использовать дополнительный прямоугольник или квадрат и функцию разрезания. Проверьте следующий GIF, который я сделал.

Как получить контроль над закругленными углами


2

Другим решением этой проблемы является использование инструмента разделения пути. Преимущество здесь в том, что радиусы могут быть явно установлены в виде числа

  1. Создать прямоугольник
  2. Создайте круг с желаемым радиусом
  3. Выровняйте круг по углу прямоугольника
  4. Выберите прямоугольник и круг и используйте Path-> Division
  5. Удалить ненужный уголок
  6. Сделайте путь-> Объединение между новым кругом и исходным прямоугольником

2

Я смог решить это с помощью Edit paths by nodesинструмента. Я покажу, как я обработал один конец, но операция должна работать для любой фигуры с плоским краем. Начиная с такой формы:

введите описание изображения здесь

Выберите Edit paths by nodesинструмент и выберите вашу форму. Если конец вашей фигуры плоский, он должен иметь два узла, по одному на каждый угол. Выберите эти узлы и нажмите Insert new nodes into selected segmentsкнопку: введите описание изображения здесьэто добавит третий узел между двумя узлами в конце и будет выглядеть примерно так:

введите описание изображения здесь

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

введите описание изображения здесь

Обязательно используйте Ctrl + Drag для перетаскивания по прямой линии. Теперь, когда мы имеем точку , мы должны позволить узлу быть сглажены, и это где Make selected nodes symmetricкнопка входит: введите описание изображения здесь. Это добавляет некоторые дескрипторы к узлу, чтобы позволить нам изменить форму узла. Это будет выглядеть так:

введите описание изображения здесь

Теперь просто отрегулируйте ручки (удерживая Ctrl, чтобы все было ровно), чтобы получить желаемую округлость:

С выбранными узлами


2

Если ваша версия Inkscape не имеет эффекта пути Fillet / Chamfer, вам может пригодиться расширение, которое я написал:

Inkscape Закругленные углы

Пример использования расширения закругленных углов


Я должен был прочитать все вышеупомянутые ответы, чтобы достичь этого ответа, но оно того стоило. Действительно, это наиболее близко к LPE Fillet / Chamfer. На официальной странице Inkscape есть также расширение «Fillet and Chamfer», но оно у меня не работает.
user1414213562

Я попробовал и получил эту ошибку
Foad

Спасибо, это сработало для меня. Я конвертировал свой звездный многоугольник, используя «Объект -> Путь». Он автоматически добавляет узлы в углы звезды. Затем я выбрал звездочку Path и применил радиус, используя «Extension> Modify path> Rounded Corners». [Я использую Inkscape 0,92] РЕДАКТИРОВАТЬ: Если это расширение делает края также закругленными вместо углов, просто перезапустите Inkscape.
myDoggyWritesCode

1

Я имел успех только с использованием кривых Безье. Например, я бы нарисовал форму L ОП как

|
|
|
 \
  \
   \_________

(очень грубое искусство ASCII!) т.е. с диагональной линией, где должен быть закругленный угол, а затем отрегулируйте контрольные точки Безье для двух точек соединения линий.


0

Для чисто косметического эффекта (то есть, вы не получите округленный путь), вы можете попробовать применить эффект Filters> Blurs> Cross-smooth . Затем откройте редактор фильтров и установите параметр эффекта стандартного отклонения около 1,0.


0

Другой метод - создать обводку и установить закругление Join и Cap. Скопируйте путь и вставьте его на место и удалите обводку из копии. Затем выберите оригинал и выберите путь> обводка до пути, затем объедините 2 фигуры вместе.


-1

Так как нет чистого решения, давайте упомянем другое, используя GIMP!

1. Сделайте копию только этого объекта в другом экземпляре Inkscape (если у вас есть другие объекты)

2- Экспорт в растровое изображение (файл png)

3- Откройте png с помощью GIMP, выберите форму с помощью «Выбор с помощью инструмента Цвет»

3- Выберите -> Перо -> по Rпикселям (радиус)

4- Цвет выделения и снова сохранить / экспортировать в PNG

5- Откройте измененный png-файл с помощью Inkscape и используйте инструмент «Trace Bitmap», чтобы получить округленный путь (поскольку форма должна быть одноцветной, ее легко и, вероятно, очистить)


Есть несколько решений, перечисленных выше. Они нечисты? Передача векторного объекта в GIMP для редактирования - грязный хак.
Мартин Заске

1
@MartinZaske Большинство ответов выше (которые высоко оценены) либо ограничены базовыми фигурами, такими как прямоугольники, либо они слишком ручные и не практичны для фигур со слишком большим количеством углов. В сложных формах я думаю, что этот подход будет намного проще и лучше, чем большинство из приведенных выше ответов. Также не было никакого чистого ответа, когда я отправил это.
saeedgnu

-1

Это работает довольно хорошо, но это немного меняет вашу форму.

Это похоже на решение Wrzlprmft .

Результат

GIF шаг за шагом

Извините, у меня нет 10 репутации для публикации изображений

Вы также можете создать расширение inkscape, которое:

  • Принимает эти входные данные:

    • какой угол вы хотите округлить

    • сила округления ( г )

  • чем это делает:

Извините за мой ужасный английский


-2

Вы можете использовать редактор XML в Inkscape, чтобы сделать прямоугольники скругленными углами. Откройте редактор XML, выберите <svg:rectэлемент. Добавьте атрибуты rx и ry, в правом нижнем углу редактора XML есть два поля и Setкнопка. Введите rxв верхнее поле и / 10или любое другое число, затем нажмите Set.


В теории хорошая идея. Практически, объекты, которые упоминаются в вопросе, больше не являются прямоугольниками. Можно установить ryи rxатрибуты , но они не интерпретируются.
daniel.neumann

-4

Это очень просто на самом деле.

  1. Сделайте форму, которая имеет прямоугольные углы.

  2. Нажмите на инструмент прямоугольник

  3. Нажмите на одну из круглых ручек в углу формы, а не на одну из квадратных ручек.

  4. Нажмите Shiftи перетащите круглую ручку, она автоматически сделает закругленные углы.

введите описание изображения здесь
Перетащите круглую ручку, чтобы сделать закругленные углы.


3
Если это не изменилось недавно, это должно работать только для простых прямоугольников, о чем вопрос не в этом. Даже ваш скриншот показывает, что вы выбираете только прямоугольник, который составляет левую часть фигуры. Наконец, ваш скриншот не показывает запрошенное округление вогнутых углов.
Wrzlprmft
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.