2015-05-25 86 views
0

的陣列之間的一個關鍵,我需要一個插補功能插補點:C#樣條插值插值點

var times = new List<double>(); 
var offsets = new List<double>(); 
.. 
.. 
..//I fill times and offsets arrays with some points 
.. 
var newTime= splineInterpolate(cursorOffset, offsets.ToArray(), times.ToArray()) 
+0

我建議使用* *拉格朗日插值最接近4(中最常見的三次樣條的情況下)指出 –

+2

我認爲堆棧溢出不是*搜索代碼片段我*網站。你自己的實現有特定的問題嗎? –

+1

@adirano:我不同意你的看法......這就是爲什麼我刪除我的答案......扔一個問題 –

回答

1

這取決於你想要什麼樣的插值。如果您不希望插值函數通過控制點,則可以使用Bezier curve(您可以選擇曲線的順序)。

如果你想讓曲線通過控制點,一個流行的選擇是cubic Hermite spline。有許多類型的hermite樣條,如基數和catmull-rom樣條(C1和C2連續)。

如果你只是做一個簡單的谷歌搜索,你會遇到數以千計的樣條結果與他們在C#提供的實現。