3

編集: Numpyを使用したソリューションで問題ありません。以前は両方のインストールで問題が発生していましたが、現在一部のシステムでNumpyを使用しています。

http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Finite_differenceのようなものがあれば素晴らしいでしょう。

x、yデータポイントのセットがあり、データポイント間のスムーズなパスをプロットする方法を探しています。ベジェ曲線がそれをカットしないように、実際のポイントを訪問する必要があります。

前もって感謝します

4

2 に答える 2

2

Pythonでの数値計算の場合、numpyを回避するのは困難です。あなたは試してみるべきですscipy.interpolate

http://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html#spline-interpolation-in-1-d-procedural-interpolate-splxxx

そして、パラメトリックスプラインを探します。リンクから:

import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate
t = np.arange(0,1.1,.1)
x = np.sin(2*np.pi*t)
y = np.cos(2*np.pi*t)
tck,u = interpolate.splprep([x,y],s=0)
unew = np.arange(0,1.01,0.01)
out = interpolate.splev(unew,tck)
plt.figure()
plt.plot(x,y,'x',out[0],out[1],np.sin(2*np.pi*unew),np.cos(2*np.pi*unew),x,y,'b')
plt.legend(['Linear','Cubic Spline', 'True'])
plt.axis([-1.05,1.05,-1.05,1.05])
plt.title('Spline of parametrically-defined curve')
plt.show()

結果

于 2012-06-13T16:37:09.527 に答える
2

Scipy多項式補間モジュールは、適度にスタンドアロンです。依存関係を本当に回避する必要がある場合は、ファイルを独自のプロジェクトにコピーできます。

https://github.com/scipy/scipy/blob/master/scipy/interpolate/polyint.py

同じことがsplmake/splevalスプライン補間ルーチンのペアにも当てはまります。

https://github.com/scipy/scipy/blob/master/scipy/interpolate/interpolate.py

于 2012-06-13T17:20:31.903 に答える