2012-04-10 107 views
3

我需要實現一種用於值之間非線性插值,易於在,易於出,一般寬鬆曲線以及用戶定義的曲線。一種實現非線性插值的方法?

我對如何做這樣的基本理念 - 但我不知道這是否將是最有效的解決方案。我的想法是基本上如下:

使用二維正方,二次或n階貝塞爾曲線來控制內插。導線通過曲線線性地獲得非線性Y分量,並用它來值喂簡單的線性內插方法:

​​

其中T是控制曲線的非線性Y分量。

這允許用於內插的自定義,用戶定義的方法,但它是有代價的,一個非線性插值的成本等於:

1 + 2 *(N-1)

總的內插,其中n是順序,或控制曲線的控制點的數量。

我不是數學家,這是我能想出的最好的,所以我的問題是,如果有一個更好的解決辦法?

編輯:我可能沒有解釋是正確的,我不是母語的人,所以這裏的東西希望大家能理解: control curve interpolation

+1

更好的解決方案,具體是什麼?一般的插值,還是更高效的Bezier算法?你的約束是什麼? – 2012-04-10 20:15:48

+0

如何創建立方或方形固化以「控制插值」?只是猜測? – 2012-04-10 20:16:57

+0

@DanW - 該曲線的斜率變化被用作噸內插,基本上,而不是領從V1到V2的線性變化,則內插的值的「位置」由控制曲線的Y分量所決定的。 – dtech 2012-04-10 20:18:47

回答

2

據我瞭解,你t實際上是功能家庭˚F(U),其中兩個ü˚F(U)是0和1之間。如果是這樣的話,它不會得到任何比你已經什麼好建議。

看起來您很擔心在實際曲線計算過程中評估這些值。如果您不想預先計算,則不會避免評估。如果性能是一個大問題,你不需要非常精確,你可以計算出列表F (U Ĵ儘可能多üĴ值,只要你想(說100或0到1之間的1000個離散點),並且當您需要採樣點之間的值時,請對所需點周圍的兩個緩存值進行簡單線性插值。

+0

謝謝,這就是我需要知道的。這個想法基本上是創建一個類的家庭,其中之一是你所描述的,從0到1返回值,但也有一些用戶可以設置其他值和類型,例如你可能需要一個0和3,但你想控制返回任何這些數字的機率,例如你想要0%的概率爲70%,1的概率爲20%,2的概率爲7%,1的概率只有3%,同時要控制循環創建自定義,非線性循環和其他類似的東西... – dtech 2012-04-11 06:58:26