B Spline樣條曲線

2021-08-22 15:14:49 字數 744 閱讀 5772

interpolate庫提供了許多對資料進行插值運算的函式。下面是使用直線和b-spline對正弦波上的點進行插值的例子。

#coding = utf-8

import numpy as np

import pylab as pl

from scipy import interpolate

x = np.linspace(0, 2*np.pi+np.pi/4, 10)

y = np.sin(x)

x_new = np.linspace(0, 2*np.pi+np.pi/4, 100)

f_linear = interpolate.interp1d(x, y)

tck = interpolate.splrep(x, y)

y_bspline = interpolate.splev(x_new, tck)

pl.plot(x, y, "o", label=u"原始資料")

pl.plot(x_new, f_linear(x_new), label=u"線性插值")

pl.plot(x_new, y_bspline, label=u"b-spline插值")

pl.legend()

pl.show()

在這段程式中,通過interp1d函式直接得到乙個新的線性插值函式。而b-spline插值運算需要先使用splrep函式計算出b-spline曲線的引數,然後將引數傳遞給splev函式計算出各個取樣點的插值結果。 

樣條曲線 B樣條曲線求解及C 實現

功能 根據引數u值和k 大小為階數值 與節點向量,計算第i個k次b樣條基數 輸入引數 u 引數值 k 大小值為階數 i 第i個k次b樣條的支撐區間左端節點的下標 anode為節點向量。輸出引數 返回函式值。double getbasefunval double u,int i,int k,vecto...

b樣條和三次樣條 樣條曲線

最近在學習軌跡規劃中的軌跡生成,涉及到樣條曲線方面的知識,總結一下。曲線的平滑性和相應的平滑性的評判準則相關,在 1 中,作者採用曲率的平方和曲率導數的平方作為評判準則 其中 是路徑點的方向角。最小化這兩個準則的軌跡分別是圓弧和三階螺旋線,並對在對稱和不對稱情況下如何生成路徑進行了分析,事實表明三階...

利用Eigen進行B Spline 曲線插值運算

b spline curve即b樣條曲線,1972 年gordon riesenfeld 等人提出,為了解決bezier曲線的不足 bezier 曲線不能做區域性修改 bezier 曲線的拼接比較複雜 b樣條曲線的計算原理可參考這裡 或者看中文的更詳細的介紹可參考 計算機輔助幾何設計與非均勻有理b樣...