Скажем, у меня простая диаграмма силы D3.js, как в этом примере here. Я знаю, что все волшебство силы происходит, в основном, в этой функции здесь:Пуск/остановка d3.force динамически
function tick() {
path.attr("d", function(d) {
var dx = d.target.x - d.source.x,
dy = d.target.y - d.source.y,
dr = Math.sqrt(dx * dx + dy * dy);
return "M" +
d.source.x + "," +
d.source.y + "A" +
dr + "," + dr + " 0 0,1 " +
d.target.x + "," +
d.target.y;
});
node
.attr("transform", function(d) {
return "translate(" + d.x + "," + d.y + ")";
});
}
мне было интересно, будет ли возможность динамически остановить/запустить силу? Поэтому я мог перемещать узлы, а потом по какой-то причине я включил бы силу, а затем отключил бы ее и перемещал бы все вокруг (им известно, что включение силы будет скрещивать мою диаграмму, созданную ive, когда она была отключена).
Может ли кто-нибудь дать мне совет? Я могу видеть, как создать статическую диаграмму, но она не нажимает на мою голову noob, как извлечь из нее мою функциональность ... скрипка всегда является самым ярким примером/предложением/ответом.
Используйте '.start()' и '.stop()'. –
@LarsKotthoff Ill собрал пример, чтобы показать, что как только остановка вызывается, когда я перемещаю узел - сила только начинается. Возможно, вы могли бы указать, где моя проблема. Спасибо –
Lars, здесь ([скрипка] (http://jsfiddle.net/yeQS2/351/)) im, используя start и stop. Как только я нажимаю, чтобы отключить силу и передвигаться по узлам, сила снова начинается. Я уверен, что он имеет какое-то отношение к функции перетаскивания, но, пожалуйста, посоветуйте и, конечно же, отредактируйте [скрипку] (http://jsfiddle.net/yeQS2/351/). –