我想将“飞行”(3D)弧添加到我的正投影中,如here所示,但是使用剪切而不是淡入淡出效果。这似乎很困难,因为弧是独立于投影而创建的。 (每个弧由投影获得的三个点定义 - 开始,结束和大圆中点沿着画布中心的一条线延伸 - 但是弧形本身是使用相应的“2D”基本插值绘制的在svg画布上点。)
我的第一个想法是,我可能需要做一些球形几何来获得裁剪发生的坐标,但现在我想知道是否有一种更简单的方法来实现这一点(我是D3的新手)。 / p>
这就是我的地图没有裁剪的样子:
答案 0 :(得分:0)
我对d3也非常环保,但幸运的是,我也很自豪地寻找一种能够在拼写中剪裁飞行线的合适解决方案。您链接到的演示在很多方面都很聪明:
在投影的2D坐标中绘制样条线消除了在投影前分割线条的任何选项,并获得廉价的视觉平滑度,即使d3具有本机功能(我仍然无法找到)。这意味着插值必须更加手动。
我的第一个想法是,我可能需要做一些球形几何来获得裁剪发生的坐标,但现在我想知道是否有更简单的方法来实现这个
我最终选择了我认为最明显的选项,不幸的是你的目标是避免:
Po
和Pd
以及地球中心C
,您正在寻找C x (Po x Pd)
规范化scale
(读取:海拔)的航线的那一部分要确定您需要将剪切点拼接在飞行路径中的哪个位置,您可能需要将剪切点的大角度与一端与端到端进行比较。另请注意,性能会受到影响,但您可能仍然对您在示例中绘制的航线数量感到满意。