Почему мне нужно включить d3.now () в d3.interval? - PullRequest
0 голосов
/ 02 апреля 2020

Я нырнул в d3 force и d3.time недавно. Есть много примеров использования d3.time вместе с силами.

Я понял d3.interval - который заставляет d3.timer l oop работать с относительно более медленной скоростью, чем сейчас.

Однако Я не знаю, почему этот код поместил d3.now () в d3.interval. И не знаю, почему происходит два элемента: d3.interval: 2000, а другой - d3.now ().

Код Entier: https://jsfiddle.net/onw8v29g/

Дело, которое я застрял.

d3.interval(function() {
  nodes.push(c); // Re-add c.
  links.push({source: b, target: c}); // Re-add b-c.
  links.push({source: c, target: a}); // Re-add c-a.
  restart();
}, 2000, d3.now() + 1000);

PS Я думаю, что самая сложная часть при изучении d3 - это расшифровка документации. Недавно я начал читать «d3 indepth», что очень полезно для расшифровки официальной документации. Если у вас есть другие рекомендации для понимания d3, пожалуйста, дайте мне знать.

Спасибо.

1 Ответ

3 голосов
/ 03 апреля 2020

d3.interval (обратный вызов [, задержка [, время]])

Планирует новый таймер, повторно вызывая указанный обратный вызов до тех пор, пока интервал не будет остановлен. Необязательная цифра c задержка в миллисекундах может быть указана для вызова данного обратного вызова после задержки; если задержка не указана, по умолчанию устанавливается ноль. Задержка относительно указанного времени в миллисекундах; если время не указано, по умолчанию используется значение сейчас.

Таким образом, фактически обратный вызов фактически вызывается на часах "(d3.now () + 1000) + 2000" мс. ​​

Ссылка: https://github.com/d3/d3-timer#interval проверьте объяснение таймера, чтобы иметь представление о спецификациях параметров.

...