sanyaade-g2g-repos / recursive-ascent

Automatically exported from code.google.com/p/recursive-ascent
0 stars 0 forks source link

Компонента для отрисовки, раскладки графов. #71

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Провести анализ и выбрать или реализовать 
свою компоненту для раскладки графов. 
Апробация -- какой-либо граф из YARD + 
интеграция в плагин <Issue #70>.

Original issue reported on code.google.com by rsdpisuy@gmail.com on 12 Oct 2012 at 2:49

GoogleCodeExporter commented 9 years ago
Примеры компонент:
1)MSAGL (он же GLEE) http://research.microsoft.com/en-us/projects/msagl/
  Похоже, уже мертва.
2)GraphSharp http://graphsharp.codeplex.com/
3)yFiles for .NET 
http://www.yworks.com/en/products_yfiles_dotnetplatform_about.html

Библиотека для работы с графами:  
http://quickgraph.codeplex.com

Самой удобной была MSAGL. Проблемы: не WPF, не 
было возможности навигироваться снаружи в 
граф, хотя приватные методы для этого были. 
Работа с большими графами не очень удобна 
(например, нельзя выделить и схлопнуть 
"подграф")

Original comment by rsdpisuy@gmail.com on 17 Oct 2012 at 2:46

GoogleCodeExporter commented 9 years ago
Я думал о легкой доработке GraphSharp с оберткой 
наших структур и "обратной связью"

Original comment by maiksa...@gmail.com on 20 Oct 2012 at 10:48

GoogleCodeExporter commented 9 years ago
Меня смущает, что она уже год как не 
развивается и с апреля висит pull request. Вы 
альтернативы искать пыталсь? Те ссылки, что 
я давал -- данные примерно двухлетней 
давности. За это время могли много чего 
придумать.

Original comment by rsdpisuy@gmail.com on 22 Oct 2012 at 7:37

GoogleCodeExporter commented 9 years ago
ну она живее чем остальные среди тех, что я 
нашел
+ судя по всему требует меньшего 
вмешательства. 

Original comment by maiksa...@gmail.com on 22 Oct 2012 at 10:23

GoogleCodeExporter commented 9 years ago
Хорошо. Опубликуйте, пожалуйста, краткий 
обзор того, что Вы изучили.

В аттаче -- пример графа в формате DOT. БУдет 
здорово, если Вы с ним поэкспериментируете.

Original comment by rsdpisuy@gmail.com on 22 Oct 2012 at 11:28

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by maiksa...@gmail.com on 23 Oct 2012 at 9:16

GoogleCodeExporter commented 9 years ago
Небольшой обзор всего что удалось найти в 
сети и того что было предложено выше.
1) MSAGL 
  В том виде, в котором хотелось бы его видеть он мертв, но процветает, как отдельный продукт MS http://www.microsoftstore.com/store?defaultKeyword=&SiteID=msstore&Action=list&categoryID=38336300&keywords=msagl&result= и стоит 300 баксов. По дримспарку не распространяется. Распространяется без исходников, что плохо. 
2) yFiles for .Net 
  На первый взгляд слишком Математично для наших целей + стоимость сборки для проекта 10000$, стоимость исходников 44000$, а исходники так или иначе перепиливать придется для подсвечивания. Это меня и оттолкнуло. 
3) Graph# 
  Судя по примерам - наиболее подходящая библиотека, но полное отсутсвие документации как таковой за исключением описанных контрактов, которые тоже нужно уметь читать делает понимание происходящего долгим + https://dl.dropbox.com/u/51151427/Screenshot-23.jpg 
4) http://nodebox.net/code/index.php/Home 
  Только под мак, отпало сразу.
5) еще была где-то библиотека для отрисовки 
_небольших_ графов. У них на главной было 
написано не больше 200 узлов. Даже не 
задумываясь о миллионах узлов, я сразу ее 
отмел. 
  Надо было сразу выложить это ревью, но лучше поздно чем никогда. 

upd: Терехов посоветовал порыться в архивах 
кафедры и поискать недавний диплом на 
похожую тему, может поможет.  

Original comment by maiksa...@gmail.com on 9 Nov 2012 at 8:52

GoogleCodeExporter commented 9 years ago
Ясно.

Про MSAGL я бы не сказал, что процветает, 
особенно учитывая дату релиза.

Довод про математичность yFiles for .Netзвучит 
крайне странно :)

Терехов конкретных фамилий не называл? На 
сколько я знаю, на кафедре периодически 
случаются работы по раскладкам графов и 
т.д. и сейчас в архивах их, скорее всего, 
несколько.

Original comment by rsdpisuy@gmail.com on 12 Nov 2012 at 9:37

GoogleCodeExporter commented 9 years ago
Удалось немного поковыряться в GraphSharpe с их 
примером. 6 тысяч вершин в графе выглядят 
неплохо, но выжирает 500 метров памяти + 
намертво вешается на время релейаута. 
Ноутбук у меня, конечно, не очень мощный, 
надо будет дома попробовать.

Original comment by maiksa...@gmail.com on 13 Nov 2012 at 8:10

GoogleCodeExporter commented 9 years ago
https://dl.dropbox.com/u/51151427/Screenshot-28.jpg
Такие дела. 
15к вершин - 700 метров чистой памяти + до 500 на 
раскладку

Original comment by maiksa...@gmail.com on 13 Nov 2012 at 11:47

GoogleCodeExporter commented 9 years ago
Круть) А навигироваться то по этому добру 
можно?

Я создал свою ветку: 
http://graphsharp.codeplex.com/SourceControl/network/forks/gsv/graphsharp

Там проект, который работает нормально в 
VS2010.
Для работы надо установить (кроме всяких 
контрактов и квикграфов):
1) http://www.microsoft.com/en-us/download/details.aspx?id=11877 (тот, 
который Microsoft Ribbon for WPF.msi)
2) http://wpf.codeplex.com/releases/view/40535
3) http://www.microsoft.com/en-us/download/details.aspx?id=10801

После этого всё работает и редактор 
открывается.

С VS2012 не сложилось, так как у меня урезанная 
версия, которая не поддерживает WPF. 
Попробуйте сами отконвертить. Должно 
заработать.

Original comment by rsdpisuy@gmail.com on 13 Nov 2012 at 11:59

GoogleCodeExporter commented 9 years ago
Навигироваться можно только зумом и 
мышкой, всяких контрол-поинтов нет, но, 
думаю, это и не нужно. 
VS2012Ultimate есть на дримспарке же с дотупом для 
Staff/Study/Prof 

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

Но главное - я втянулся =)  

Original comment by maiksa...@gmail.com on 13 Nov 2012 at 12:19

GoogleCodeExporter commented 9 years ago
Здорово:)

Кстати. Почитайте Issue к graphsharp-у. Там есть 
полезные идеи. Например -- кривые рёбра. 
Если мы что-то такое "починим" -- будет очень 
круто. И пришлите Ваш codeplex-овский username, 
чтобы я добавил в "сообщники".

Original comment by rsdpisuy@gmail.com on 13 Nov 2012 at 2:16

GoogleCodeExporter commented 9 years ago
Интересные идеи навигации по графу: 
http://zvtm.sourceforge.net/zgrviewer.html

Original comment by rsdpisuy@gmail.com on 13 Nov 2012 at 2:19

GoogleCodeExporter commented 9 years ago
Codeplex логин: maiksaray

Original comment by maiksa...@gmail.com on 13 Nov 2012 at 4:10

GoogleCodeExporter commented 9 years ago
Добавил.

Original comment by rsdpisuy@gmail.com on 13 Nov 2012 at 4:49

GoogleCodeExporter commented 9 years ago
В VS2012 всё работает.

Original comment by rsdpisuy@gmail.com on 13 Nov 2012 at 8:21

GoogleCodeExporter commented 9 years ago
Сперва о проблемах со студией. Давайте по 
пунктам.
1) То, что сейчас в репозитории собирается и 
запускается?
2) На том, что сейчас в репозитории редактор 
работает нормально?
3) Можно ли ставить эксперименты на том 
примере, который включён в проект? Или тоже, 
при малейших изменениях всё разваливается?
4) Если можно работать со "встроенным" 
примером, то давайте пока работать с ним.
5) Опишите шаги, в результате которых у Вас 
"всё падает". Как я понял, Вы берёте graph# как 
библиотеку и пытаетесь поиспользовать её в 
своём приложении (создать свой контрол для 
отображения графа), но из этого ничего 
хорошего не получается.

Теперь о планах на ближайшее будущее.
Продумывание решения и т.д. никто не 
отменяет. Первая техническая задача: 
разобраться с проблемой, описанной в 
http://graphsharp.codeplex.com/discussions/403863. Это как раз то, 
что мы обсуждали. Хочется на клик иметь 
доступ к реальной вершине.

Original comment by rsdpisuy@gmail.com on 22 Nov 2012 at 5:58