LINUX.ORG.RU

Картинки в graphviz

 


0

3

Казалось бы, какая может возникнуть проблема? Захотелось седлать что-то подобное http://www.graphviz.org/content/kennedyanc .

Выяснилось, что автор сего полотна смухлевал - он добавил к картинкам внизу пустое пространство http://www.graphviz.org/Gallery/directed/images/165px-Caroline_Kennedy.jpg , а такой вариант не подходит, потому что фон может и не быть белым.

Ищу другой вариант: предлагают использовать labelalloc=b, и увеличить высоту узла, чтобы картинка не налазила на текст. Получаю зияющую дыру сверху http://puu.sh/3a2ui.png и необходимость вручную подбирать высоту для каждого узла.

Еще были предложения писать узлы html-кодом, типа

node [color=lightblue2, style=filled, label=<<TABLE border="0" cellborder="0">
<TR><TD><IMG SRC="Crock_Pot.png"/></TD></TR>
<TR><TD>first line</TD></TR>
</TABLE>>];
Получается то, что нужно http://puu.sh/3a36Z.jpg , но, черт подери, это перечеркивает всю идею graphviz, теперь я сам рисую что мне нужно, а не просто подставляю картинку и текст, на кой черт мне graphviz? Стрелочки расставлять?

Возникает вопрос: как это сделать без лишних телодвижений?

inb4: никак, graphviz не нужен.


Стрелочки расставлять?

Именно для этого :) А декорация узлов и ребер в графе это уже так сверху прикручено по мере возможности.

Да и чего страшного в html коде, если все равно он будет генерироваться программой. Не руками же dot файл писать...

kamre ★★★
()
Ответ на: комментарий от kamre

Тогда следующий вопрос: есть ли готовые либы или другие решения, которые позволят мне быстро задать стили и содержимое, а оно мне уже сгенерирует dot-файл?

Или здесь строго велосипедостроение?

ShprotX
() автор топика

фон может и не быть белым

А прозрачная пустота не поможет?

DonkeyHot ★★★★★
()
Ответ на: комментарий от ShprotX

Или здесь строго велосипедостроение?

У меня опыт использования graphviz состоит в основном из генерации dot файлов своими скриптами или через trace в своей программе для визуализации алгоритмов.

Если нужно ручками создавать граф и иметь возможность автоматической раскладки, то использую yEd. Там можно для узла добавить свою картинку.

kamre ★★★
()
Последнее исправление: kamre (всего исправлений: 2)
Ответ на: комментарий от ShprotX

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

invy ★★★★★
()

можно писать примерно так:

  p2 [color=lightblue2, style=filled, label=<{{"Crock_Pot.png",first line}}>];
а перед запуском dot выполнять sed-скрипт следующего вида:
sed 's/label=<{{"\(.*\)",\(.*\)}}>/'\
'label=<<TABLE border="0" cellborder="0">'\
'<TR><TD><IMG SRC="\1"\/><\/TD><\/TR>'\
'<TR><TD>\2<\/TD><\/TR><\/TABLE>>/' main.dot.src >main.dot

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.