Comments 17
Вы можете использовать оригинальные SVG изображения в статье опубликовав их на Github Gist.
Главное — придумать подходящий язык, и свалить на программу реально сложные вещи типа автоматического размещения компонентов на листе, трассировку соединений и пр. Но вот это, к сожалению, сделать уже не очень просто.
Да хотя бы расширить пункт 3, включив туда переработанный пункт 4.
"Нарисовать соединения. Для этого удобно использовать тэг path, который позволяет легко чертить горизонтальные и вертикальные линии."
… тут список команд из алгола…
… вот тут что-то из п.4, например, как-то так:
"Расставить точки соединения линий. Ничем не отличается от расстановки элементов, но лучше знать заранее возможные точки соединений." Но точки соединение, читай In/Out, никак не выделены, пусть это будет технический тэг. И команда построения линии не по координатам, а "от точки A1 до точки B1", где [A;B] — объект, [0..9] — точки соединения. Как-то это стандартизировать… а вдруг уже, просто я не в курсе. А там и до трассеров как-нибудь…
Уйма библиотек в Egale, Fritzin, Proteus и т.д. и все несовместимы, а те вон из гугла — бесполезны чуть менее, чем совсем.
SVG(он же XML, так?) вполне, как мне кажется, подошёл бы для всего этого. Не обязательно выдумывать какой-то новый язык
SVG для графики. Пихать в него, например, информацию о сетях (а она необходима для нормальной трассировки, чтобы понимать какие компоненты реально соединены, а где просто линии пересеклись на схеме), — это значит сделать кастомный формат поверх svg, т. к. svg-библиотеки уже не смогут с этим работать: например, разделение одного path на два потребует каких-то дополнительных телодвижений, сообщающих о том, что они всё ещё относятся к одной сети.
Я видел использование подобного подхода в SCADA (TAC Vista): TGML, описывающий мнемосхему, является надмножеством svg, который содержит информацию об обработке событий и биндингах к сигналам реального мира.
Но есть же в этом svgml вот это вот
https://www.w3.org/TR/SVG2/struct.html#MetadataElement
Правда иногда использовать такого монстра проектирования для рисования простой картинки — всё равно, что стрелять из пушки по воробьям.
Я же описываю противоположную крайность. Метафорически, когда дырка нужна, а сверла нет, то и гвоздиком проковырять можно.
По работе приходилось сталкиваться с svg, но всегда через редакторы. Было желание ковырнуть код, но всегда останавливала лень и "ну не серьезно это".
А так остается вставить картинку про "как рисовать сову на svg в блокноте"
"Как натянуть SVG сову на SVG глобус" (ASCII-видео туториал) :)
P.S. а мне нравятся редакторы схем, где можно таскать элементы вместе с присоединёнными к ним "резиновыми" связями.
Простейшие схемы можно не рисовать, а из типовых даташитных и википедийных выдернуть, если допустим назначение резистора нужно кому-то объяснить по его номеру.
XML вообще плохой формат для ручной обработки и написания.
И поэтому вручную с помощью него рисовать — самое последнее дело.
Если хочется рисовать графику в текстовом редакторе, то есть более подходящие форматы:
PostSctipt, MetaPost
Которые можно конвертируются в форматы, которые понимают браузеры.
А если надо серьезно рисовать в SVG, то лучше всего Inkscape.
Использование SVG для рисования набросков схем