Cesium專欄-樣條插值(平滑路徑、飛行動畫,源碼下載)

Cesium


Cesium 是一款面向三維地球和地圖的,世界級的JavaScript開源產品。它提供了基於JavaScript語言的開發包,方便用戶快速搭建一款零插件的虛擬地球Web應用,並在性能,精度,渲染質量以及多平臺,易用性上都有高質量的保證。函數

效果圖

關於插值的認識


在Cesium官網中有介紹飛機飛行路線插值的例子,介紹了3中插值的使用方式。
分別是:
LinearApproximation工具

  • entity.position.setInterpolationOptions({
  • interpolationDegree : 1,
  • interpolationAlgorithm : Cesium.LinearApproximation
  • });

LagrangePolynomialApproximation性能

  • entity.position.setInterpolationOptions({
  • interpolationDegree : 5,
  • interpolationAlgorithm : Cesium.LagrangePolynomialApproximation
  • });

HermitePolynomialApproximation加密

  • entity.position.setInterpolationOptions({
  • interpolationDegree : 2,
  • interpolationAlgorithm : Cesium.HermitePolynomialApproximation
  • });

關於樣條插值


百度百科給的解釋是:spa

    樣條插值法是一種以可變樣條來做出一條通過一系列點的光滑曲線的數學方法。插值樣條是由一些多項式組成的,每個多項式都是由相鄰的兩個數據點決定的,這樣,任意的兩個相鄰的多項式以及它們的導數(不包括仇階導數)在鏈接點處都是連續的。插件

一位搞遊戲引擎開發的博主在博客上是這樣的說的:code

    在離散數據的基礎上補插連續函數,使得這條連續曲線經過所有給定的離散數據點。插值是離散函數逼近的重要方法,利用它可經過函數在有限個點處的取值情況,估算出函數在其餘點處的近似值。插值能夠用於填充圖像變換時像素之間的空隙。插值,擬合,逼近是數值分析的三大基礎工具,通俗意義上它們的區別在於:插值是已知點列而且徹底通過點列;擬合是已知點列,從總體上靠近它們,逼近是已知曲線,或者點列,經過逼近使得構造的函數無限靠近它們。科學和工程問題能夠經過諸如採樣、實驗等方法得到若干離散的數據,根據這些數據,咱們每每但願獲得一個連續的函數(也就是曲線)或者更加密集的離散方程與已知數據相吻合。
    插值問題的提法是:假定區間[a,b]上的實值函數f(x)在該區間上 n+1個互不相同點x0,x1……xn 處的值是f (x0),……f(xn),要求估算f(x)在[a,b]中某點x的值。基本思路是,找到一個函數P(x),在x0,x1……xn 的節點上與f(x)函數值相同(有時,甚至一階導數值也相同),用P(x)的值做爲函數f(x*)的近似。簡單地講就是已知數據上的若干值,爲其補上未知的值。
    樣條方程是一類分段光滑、而且在各段交接處也有必定光滑性的函數。樣條一詞來源於工程繪圖人員爲了將一些指定點鏈接成一條光順曲線所使用的工具,即富有彈性的細木條或薄鋼條。由這樣的樣條造成的曲線在鏈接點處具備連續的坡度與曲率。分段低次多項式、在分段處具備必定光滑性的函數插值就是模擬以上原理髮展起來的,它克服了高次多項式插值可能出現的振盪現象,具備較好的數值穩定性和收斂性,由這種插值過程產生的函數就是多項式樣條函數。blog

Cesium中的樣條插值


在cesium裏,提供了三種樣條插值方法,LinearSpline,CatmullRomSpline,HermiteSpline。
在具體的實例上,可使用樣條插值法利用已知的控制點,插值出一系列的點,用於平滑曲線,特別是在路徑的追朔重演。
下面,咱們分別介紹這三種樣條插值的使用方法以及效果。遊戲

更多詳情見小專欄此文章GIS之家cesium小專欄ip

文章提供源碼,對本專欄感興趣的話,能夠關注一波

相關文章
相關標籤/搜索