Отличный вопрос. Чтобы ответить на него, я реализовал плагин D3 для искажения «рыбий глаз» . Это примерно основано на предыдущей работе в Flare и Sigma.js, которые, в свою очередь, основаны на работах Саркара и Брауна, «Графические виды графиков типа« рыбий глаз »» , CHI'92.
Вот быстрое демо с набором данных Misérables. Посмотреть исходный код. Я сделаю запись позже сегодня, когда у меня будет время.
Примечание: здесь используется статическая раскладка сил; макет вычисляется при запуске и не изменяется. Я думаю, что это, вероятно, то, что вы хотите в сочетании с искажением «рыбий глаз», иначе искажение будет конкурировать с вашей способностью динамически перемещать узлы. Но теоретически их можно объединить, если вы этого хотите.