Я не могу сказать, что это лучшее решение, но если бы я делал это, вот, как я мог бы идти о нем:
Мои предположения, что
- Сложный процент рассчитывается на основе на некоторый интервал (я думаю, ежемесячно для кредитных карт)
- На графике будет отображаться общая сумма (задолженность) в будущем, скажем, 10 лет.
Исходя из этого, мы можем придумать количество точек на график, например. 120 (10 лет 12 месяцев).
Затем, с помощью простого цикла, я бы создать 120-элементный массив null
S A:
var points = [null, null, null, null, null, null.....null, null]; // 120 null's
Тогда я создать генератор строки, которая вычисляет X и Y на основе индекса в массив. Значение, поскольку цель состоит в том, чтобы запустить что-то вроде этого:
d3.select('svg')
.append('path')
.attr('d', lineGenerator(points))// points are the array of nulls
, то я бы создать генератор строку:
var lineGenerator = d3.svg.line()
.x(function(d, i) {
// return a date value calculated as function of i
})
.y(function(d, i) {
// return a compound interest "future value" as a function of i
})
Дело в том, что этот путь, когда пользователь изменяет Params (через слайдер) нет необходимости перестраивать массив точек (если только количество точек не должно меняться, и в этом случае я бы добавил/удалил null
s). Даже функции, переданные в генераторы линейного генератора x()
и y()
, изменять не нужно - изменять только параметры (т. Е. Варсы), которые используются внутри этих функций для вычисления результата.
Я не уверен, что понимаю, что вы спрашиваете? Вы хотите узнать относительные достоинства создания нового пути каждый из объектов по сравнению с точками обновления в существующем пути каждый в элементе? – Superboggly
Это именно то, что я имел в виду, я закончил тем, что обновил путь и отлично работал. – alan