d3.js

时间:2015-05-31 09:01:50

标签: d3.js interpolation projection

我试图在两个动画之间切换,同时使它们具有交互性(拖动/缩放) - 正交和equirectangular。如果有人能帮助解释我即将解释的问题,我将不胜感激。没有解释,这个数学有点过头了。

我的插值方法基于这个非常有用的答案:How to do smooth transition for map reprojection in d3 js

我在jsfiddle上创建了两个类似的例子 - 一个以正交投影开始而没有被插值而另一个是。在第24行,您可以轻松地在插值投影和普通正交投影之间切换。

除了应用投影(第24/25行)之外,它们是相同的:

你会注意到他们在视觉上看起来很不一样,这让我想到了我的问题:

  1. 我相信处理切换的方法是创建2个插值投影(如jsfiddle中所示)。 1从正交到equirectangular(ortho2Equi),然后另一个相反。然后在适当的时候将其应用到pathequi2ortho)。或者会有更好的效率吗?
  2. 您会注意到插值方法会导致地球仪失去大部分样式 - 主要是居中,内部蓝色球体和裁剪。 clipAngle()的丢失似乎是插值正交投影的主要罪魁祸首。无论如何要保持transform()clipAngle()rotate()scale(),因为它们在香草拼写上?我怀疑他们需要"硬编码"在每种插值方法中?
  3. 插值方法底部的3 delete s的用途是什么?
  4. 谢谢!

0 个答案:

没有答案