Javascript 铯JS是获得圆弧点阵列的最佳方法

Javascript 铯JS是获得圆弧点阵列的最佳方法,javascript,animation,3d,webgl,cesium,Javascript,Animation,3d,Webgl,Cesium,为了使用铯的计时器/时钟制作动画,获取圆弧(多段线)点阵列的最简洁(代码设计)和最符合共振峰的方法是什么 可变输入包括(起点/终点位置)、距地球表面的高度(最高点)和绘图点数 我目前正在使用多段线集合,因此答案应该描述如何为现有多段线生成点或转换为其他方法 我还需要将圆弧(颜色)淡入淡出或淡出为不透明度0 每秒可以从集合中添加或删除多个弧。每个弧都有不同的起点和终点 起点和终点位置的高度应为0(接触地面) (对于铯版本b26)为了确保我理解你的问题,你在地图上有一堆多段线,你想沿着这条线获得一堆

为了使用铯的计时器/时钟制作动画,获取圆弧(多段线)点阵列的最简洁(代码设计)和最符合共振峰的方法是什么

可变输入包括(起点/终点位置)、距地球表面的高度(最高点)和绘图点数

我目前正在使用多段线集合,因此答案应该描述如何为现有多段线生成点或转换为其他方法

我还需要将圆弧(颜色)淡入淡出或淡出为不透明度0

每秒可以从集合中添加或删除多个弧。每个弧都有不同的起点和终点

起点和终点位置的高度应为0(接触地面)


(对于铯版本b26)

为了确保我理解你的问题,你在地图上有一堆多段线,你想沿着这条线获得一堆数据点,用于沿路径设置动画。我还假设您想要多段线的测地线/圆弧,而不是通常在墨卡托地图上绘制的直线,因为测地线实际上遵循多段线的空间精确路径,即平面将采用的相同路径。如果是这种情况,那么看看这篇博文:这篇博文描述了如何沿多段线的测地线路径计算数据点

CesiumJS包括几个可以使用的样条函数。使用Catmull Rom样条曲线是一种更简单的方法,它只需三个点即可实现您的目标:

您需要生成一个中间点。要做到这一点,您可以采用lat/lon坐标的平均值,并添加一个较大的高度。由于使用了样条曲线和较少的点,它最终看起来确实有点蛋形。这样做的好处是,您可以要求样条线对象提供任意数量的点,因此圆弧可以像您希望的那样平滑。只是不要忘记将第一个点和最后一个点添加到样条线返回的数组中,因为这些点会被忽略


还有其他类型的样条曲线,但我发现Catmull Rom样条曲线最容易使用。您可以在CesiumJS文档中搜索其他一些包含的样条线。

我一直在研究相同的东西(减去时间方面),我发现Cesium.椭球测地线(开始、结束、椭球),它允许您在路径的分数处获取点。在我看来,您可以根据距离选择分数,并使用结果计算规则点


我还没有试过,但它在我要做的事情清单上。

3D地球仪,而不是2D地图。lat/lng之外的高度创建弧。请参见以适应高度,可以获取两点之间的高度差,然后将其除以子点的数量。然后,可以将高度除法乘以子点索引添加到每个数据点高度。这将创建一条相当平滑的路径,该路径也考虑了高度。如果你想要一个完美的圆弧,那么你需要使用球坐标进行更复杂的计算。