Программная настройка трансфокации d3 - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть как изображение, так и линейный масштаб, которые мне нужно увеличивать / уменьшать.

Я сделал это, получив Y-образную область преобразования масштаба и успешно масштабировав оба способа таким образом:

y.domain(zoomTransform.rescaleY(y).domain());

Но возможно ли сделать обратное? Установить значения zoomTransform.k и zoomTransform.y на основе области Y шкалы? И, таким образом, позволяя пользователю специально установить zoom-домен?

1 Ответ

0 голосов
/ 28 февраля 2020

Я закончил тем, что создал циклы для мягкого изменения значений zoomTransform.y и k, а затем извлекал значения y.invert(0) и y.invert(height), чтобы проверить, был ли результат ближе к требуемому диапазону на каждой итерации. Надо было поставить еще один l oop поверх них, так как изменение y влияет на k, а изменение k влияет на y ...

Не очень красиво, но, похоже, делает свою работу.

...