Я рисую графики с принудительной компоновкой, и проблема в том, что созданные графики ориентированы случайным и непредсказуемым образом, что делает их несколько запутанными.Например, предположим, что узел A является членом двух отдельных графов G1 и G2.С помощью силового макета узел A может оказаться в левой части G1, но в правой части G2.
Теперь я пытаюсь уменьшить путаницу, автоматически поворачивая график детерминированным способом.после того, как к нему был применен алгоритм построения графика.Для этого можно вычислить минимальный ограничивающий прямоугольник , но было бы лучше, если бы алгоритм вращения мог включать некоторую дополнительную информацию о вершинах и ребрах.
В этом случае каждая вершинаявляется документом с отметкой времени и количеством слов, а края представляют собой ненаправленные и направленные отношения между документами.Возможно, есть способ повернуть график так, чтобы старые документы концентрировались слева, а новые - справа?То же самое со ссылками: стрелки должны указывать больше вправо, чем влево.Это звучит как разумный подход, но я понятия не имею, как рассчитать что-то подобное (и Google на самом деле не помог).
Примечания:
- Я думаю, что естьалгоритмы компоновки графика, которые заботятся о вращении, но я бы предпочел решение, которое включает в себя принудительное расположение.
- Можно было бы позволить пользователю поворачивать график вручную, но это требует сохранения ориентации графика, чтоэто то, чего я бы предпочел избегать, потому что в базе данных документов для этого нет места.