Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 28 мар 2024, 19:13

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Эвристическая...MSAGL
СообщениеДобавлено: 11 окт 2018, 13:17 
Не в сети
Ветеран

Зарегистрирован: 05 июл 2012, 21:34
Сообщений: 225
Очков репутации: 27

Добавить очки репутацииУменьшить очки репутации
Пробую MSAGL.
Хочу сделать как тут:
https://www.microsoft.com/en-us/researc ... 7-glee.pdf
Fig. 1 (приложил к посту)
В проекте на гитхаб есть пример:
https://github.com/Microsoft/automatic- ... /issues/44
Он не работает. Можно заставить соблюдать соотношение сторон, но только при помощи простого растяжения, простое растяжение отключить никак не смог.
Можно указывать вершины для выдвижения из ряда через LayerConstraints.
Для этого надо городить какой то свой алгоритм.
Может есть уже готовое решение? :)
Кто плавал, подскажите пожалуйста


Вложения:
heuristic.jpg
heuristic.jpg [ 144.02 Кб | Просмотров: 795 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Эвристическая...MSAGL
СообщениеДобавлено: 11 окт 2018, 13:51 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Глобальное описание задачи - это, конечно, полезно... Но не прозвучал конкретный вопрос.
Что именно является проблемой?
И терминологию нужно бы пояснить. Что такое "простое растяжение" и почему оно не работает? Что за "вершины для выдвижения"?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Эвристическая...MSAGL
СообщениеДобавлено: 11 окт 2018, 14:11 
Не в сети
Ветеран

Зарегистрирован: 05 июл 2012, 21:34
Сообщений: 225
Очков репутации: 27

Добавить очки репутацииУменьшить очки репутации
Оно рисует как на Fig. 2. Надо как на Fig.1. Это все нужно для подгонки под определенное соотношение сторон. Простое растяжение, это просто смещение вершин (Nodes) : A, B, C то что в кружочках.
Просто растяжение как раз и работает, просто не отключается.
Приложил GIF


Вложения:
Комментарий к файлу: Это когда указал какие выдвинуть в другой слой (ряд)
h2.jpg
h2.jpg [ 376.89 Кб | Просмотров: 782 ]
heuristic.gif
heuristic.gif [ 852.97 Кб | Просмотров: 791 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Эвристическая...MSAGL
СообщениеДобавлено: 12 окт 2018, 14:02 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 2253
Очков репутации: 100626

Добавить очки репутацииУменьшить очки репутации
Можно посмотреть вот такое дополнение
http://visio.artberg.ru/gum/6/importer_ru.htm
Там есть формочка для управления массивом шейпов.


Вложения:
form.gif
form.gif [ 611.27 Кб | Просмотров: 736 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Эвристическая...MSAGL
СообщениеДобавлено: 12 окт 2018, 22:01 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Насколько я понял, ключевые слова - эвристика (heuristic layout), простое растяжение (simple strtch), ограничение по уровням (layer constraints), MSAGL
Я бы посоветовал тупо задать вопрос на сайте библиотеки (на GitHub), и надеяться что кто-то откликнется.
У меня честно говоря так руки и не дошли чтобы что-то попробовать сделать с MSAGL после того как ее исходники открыли на github, ничего не подскажу.

То есть, сделать-то всяко можно - все исходники открыты,
Но подозреваю что оно как в той байке про мужика и 1000 рублей - 1 рубль за удар, 999 рублей за знание места куда бить :)

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Эвристическая...MSAGL
СообщениеДобавлено: 16 окт 2018, 17:47 
Не в сети
Ветеран

Зарегистрирован: 05 июл 2012, 21:34
Сообщений: 225
Очков репутации: 27

Добавить очки репутацииУменьшить очки репутации
Вопрос уже задавали, тема закрыта на github... Я уже основательно порылся, если что обращайтесь :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Эвристическая...MSAGL
СообщениеДобавлено: 14 ноя 2018, 23:06 
Не в сети
Ветеран

Зарегистрирован: 05 июл 2012, 21:34
Сообщений: 225
Очков репутации: 27

Добавить очки репутацииУменьшить очки репутации
Есть другой путь:
Код:
     1       4
   /        /
A - 2   A - 5
  \        \
     3       6

var mg_graph = graph.GeometryGraph;
          
var geomGraphComponents = Microsoft.Msagl.Core.Layout.GraphConnectedComponents.CreateComponents(mg_graph.Nodes, mg_graph.Edges);
           
if (geomGraphComponents.ToList().Count > 1)
{
    foreach(var gg in geomGraphComponents.ToList())
        gg.UpdateBoundingBox();
              
    var settings = new Microsoft.Msagl.Layout.Layered.SugiyamaLayoutSettings();
    settings.AspectRatio = 0.66;
    settings.Transformation= PlaneTransformation.Rotation(Math.PI / 2);
                 
     // Pack the graphs using Golden Aspect Ratio
     Microsoft.Msagl.Layout.MDS.MdsGraphLayout.PackGraphs(geomGraphComponents, settings);
   
     //Update the graphs bounding box
     mg_graph.UpdateBoundingBox();
}


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Эвристическая...MSAGL
СообщениеДобавлено: 05 дек 2018, 19:06 
Не в сети
Ветеран

Зарегистрирован: 05 июл 2012, 21:34
Сообщений: 225
Очков репутации: 27

Добавить очки репутацииУменьшить очки репутации
Одними LayerConstraints историю с длинными цепочками не победить, во всяком случае я не нашел способ, скачит оно по LR уровням.


Вложения:
step031.png
step031.png [ 136.89 Кб | Просмотров: 601 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB