2009-10-03 3 views
5

Я ищу для создания алгоритма (или повторного использования), который организует узлы и ребра на двумерном холсте, где ребра могут иметь соответствующие веса.Графическое рисование с взвешенными краями

Любой исходный материал и информация были бы полезны.

ответ

1

Что бы вес повлиял на их размещение на вашем холсте?

Это, как говорится, вы можете посмотреть в graphviz и, точнее, на DOT язык, который организует узлы на холсте.

Многие схемы визуализации графиков используют силовое моделирование, в котором все узлы оказывают отталкивающую силу друг против друга (с их массой, являющейся их размером), а края оказывают напряжение на узлы, которые они соединяют. Это создает визуализированную визуализацию графики.

Хотя, опять же, я не уверен, где вы хотите, чтобы узел «веса» вступил в игру. Вы хотите, чтобы взвешенные узлы были больше в центре? Чтобы быть больше? Что дальше?

+0

Массы часто представляют собой сходство между узлами. Мы часто хотим, чтобы подобные узлы были близки друг к другу на графике. – MRocklin

0

Многие алгоритмы построения графиков/сетей неявно способны обрабатывать взвешенные сети, но вам может потребоваться предварительная обработка и настройки для реализации, чтобы заставить его работать. Обычно первый шаг состоит в том, чтобы определить, представляют ли ваши веса «сходства» (обычно они интерпретируются как означающие, что более сильные веса должны помещать узлы ближе) или «несходства» (более сильные веса = отец отдельно). Наиболее распространенным случаем является первый, поэтому вам нужно будет перевести их на несходства, часто выполняемые путем вычитания каждого значения ребра из максимального значения наблюдаемого края в сети. Затем матрицу значений различий для каждого ребра можно подавать в алгоритм и интерпретировать как желаемые расстояния в пространстве макета для каждого края (т. Е. «Длины пружины») - обычно после умножения на некоторую константу для преобразования в единицы отображения (пиксели) ,

Если вы расскажете мне, какой язык вы используете, я могу указать вам примеры кода.

+0

Я действительно ищу эту точную вещь (с более высоким взвешенным краем означает сходство) Я использую Python, можете ли вы указать мне что-то? –

Смежные вопросы