D3-Force-Quicker стабилизация узлов и переход элементов в снарядах - PullRequest
0 голосов
/ 10 декабря 2018

Я реализовал следующую версию диаграммы сил, чтобы показать перемещение узлов между кластерами.

https://jsfiddle.net/Edwig_Noronha/67ey5rz0/

Узлы сгруппированы в четыре кластера.После того, как первая инициализация диаграммы сил заканчивается, я вызываю функцию для перехода узлов от исходных к целевым кластерам.

function moveNodes() {        
        Object.keys(inputdata).forEach(function(key, index) {
            svg.selectAll("circle.viewernodes" + index)
                .each(function(d) {
                    d.type = d.destination;
                });
        });
        viewersTransitioned = true;
        force.start();
    }

Однако стабилизация первой инициализации диаграммы сил занимает около 35 секунд.Следовательно, переход происходит через столько времени.

Q1) возможно ли добиться более быстрой стабилизации диаграммы сил с помощью обнаружения столкновений?

Переход узлов из кластеров источника в пункт назначения происходит по линейному пути.

Q2) Можно ли заставить узлы двигаться вдоль путей снаряда?

1 Ответ

0 голосов
/ 10 декабря 2018

Для достижения более быстрой стабилизации вы можете сделать одну из двух вещей из моего опыта.

  1. Инициализировать значения узлов X и Y, чтобы они были близки к их конечному / целевому состоянию

Такие как узлы [i] .x = 500 и т. Д., Затем вызов начала симуляции.

Это несколько отразило бы цель того, что вы пытаетесь показать в своем примере,если вы не хотите, чтобы узлы показывались перемещающимися в группы и просто были в них, чтобы начать с ...

Сильнее сила

Сила, движущая / тянущая узлы, должна быть сильнее.Это потребует принципиального изменения вашего подхода к этому примеру.Вместо того, чтобы просто перемещать их позиции, создайте пользовательские силы в макете сил, которые влияют на соответствующие узлы только на основе их атрибутов.Поместите эти силы в центр ваших «сортировочных кругов», и они будут соответствующим образом притягивать узлы.

Смотрите здесь, что-то вроде этого будет выглядеть: https://bl.ocks.org/mbostock/1021841

...