Автономные узлы в inkscape

Вопрос, вероятно, связан с моим плохим пониманием Inkscape и/или SVG. Есть ли причина, по которой автономные узлы не существуют? Я имею в виду абстрактную неотрисовываемую точку, с которой все еще можно работать. Примеры использования, например:

  • Воспроизведение растровой диаграммы. Вы размещаете узлы в критических точках и завершаете рисунок.
  • Использование таких точек для упрощения геометрических построений за счет наличия реальных объектов, представляющих математические точки. То есть вы размещаете на фигуре определенные точки, которые можно перемещать, но не рисовать. Затем вы создаете фигуру на основе этих точек.

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

Возможно, это что-то несуществующее в спецификации SVG, хотя я действительно не понимаю, почему узел не может существовать без пути. Или, может быть, он очень хорошо существует, хотя, если это так, я не могу его найти. Я был бы признателен за любую форму указателя, будь то условия поиска, веб-страница или прямое объяснение.

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

Привет. Добро пожаловать в ГДСЭ. Не уверен, что понимаю ваш вопрос или ваши цели. Что вы подразумеваете под «разместить узлы в критических точках и завершить рисунок». Вы пытаетесь автоматизировать рисование векторов из растрового изображения? Вы пробовали функцию Trace Bitmap?
Привет, спасибо за комментарий, я действительно пытаюсь отследить растровое изображение. Но у Trace Bitmap для меня есть 2 проблемы: 1. Он не отражает природу растрового изображения (например, на математической диаграмме есть точки интереса). 2. Требуется очистка и больше работы, чем этот гипотетический метод.
Тогда вы можете попытаться воссоздать диаграмму вручную, используя инструмент Безье, инструменты формы и т. Д. Я ничего не знаю о том, что может воссоздать идеальные векторные диаграммы из растровых изображений, кроме человеческого мастерства.
Извините, я, кажется, был слишком расплывчатым. Я действительно использую ручные инструменты. Но я надеялся, что будут отдельные точки, которые я мог бы разместить в интересных местах, чтобы облегчить процесс (и это также делает процесс более логичным и разделенным на этапы). Ни в коем случае нельзя это сделать обычными инструментами. Меня просто сильно удивило, что самый, казалось бы, логичный способ оказался невозможен.
Не беспокойся. Я думаю, проблема здесь в том, как вы думаете, что это должно быть сделано, а не в том, как на самом деле работает Inkscape (а также другое векторное программное обеспечение). Научитесь использовать инструменты, следуя некоторым руководствам. Это не совсем ракетостроение, но есть кривая обучения. Помните также, что Inkscape — это графический инструмент, который специально не предназначен для создания математических диаграмм, а для многих видов иллюстраций.

Ответы (1)

Похоже, вы пытаетесь сохранить данные координат в файле SVG.

Я не очень понимаю варианты использования, которые вы описали. SVG — это формат изображения, а не формат данных. Не было бы более разумно хранить информацию о координатах каким-то другим способом, пока ваше приложение действительно не собирается что-то рисовать? Иначе рендерить нечего.

Если вам действительно нужен путь к одному узлу, вы можете как бы эмулировать его, используя операции пути mи vвместе. Чтобы сделать это в Inkscape, вам необходимо:

  1. Нарисуйте путь с 2 точками, где первый узел находится там, где вы хотите, чтобы ваш «один узел»
  2. Откройте редактор XML ( ctrl+ shift+ k) и выберите путь.
  3. Отредактируйте dатрибут на пути, чтобы удалить координаты второго узла, а затем добавить v 0(например, m 50,90 v 0для «одиночного узла», который отображается на 50,90).

Опять же, я думаю, что это действительно не предполагаемое использование файла SVG.

Тег g может сделать это
Я действительно пытаюсь хранить данные. Для меня это не так уж отличалось от хранения векторов. Я, очевидно, могу делать что-то по-другому (я описываю, что я пытаюсь сделать в своем ответе выше), но мне показалось странным, что это не существующая функция. Я думаю, ваш ответ объясняет это. Спасибо.
@joojaa, как ты можешь <g>? Насколько я знаю, вы не можете указать местоположение или что-либо с помощью g; это просто контейнер.