В большинстве ситуаций d3
генерирует точки, начиная с начала координат (0, 0)
, что также очевидно является переводом по умолчанию.Возвращаясь к (0, 0)
, вы должны вернуться к видимой части вашего графика.
Чтобы действительно центрировать ваш график, вам нужно вычислить центральную точку, что обычно делается путем вычисления minX
,maxX
, minY
и maxY
из ваших точек, а затем вычисление (minX + maxX) / 2
и (minY + maxY) / 2
и центрирование этой точки в вашем окне.
Более сложное решение - отслеживать перевод и ограничивать еготаким образом, что график никогда не выйдет за пределы экрана.Опять же, вам нужны минимальное и максимальное значения для ваших координат.Минимальный горизонтальный перевод равен -maxX
, а максимальный горизонтальный перевод - windowWidth + minX
.Если зум не равен 1, это означает только правильное умножение границ с помощью зума.