假設我有一個組x,y座標即標記點沿着輪廓。有沒有一種方法可以建立輪廓的樣條線表示,我可以沿其長度的特定位置計算輪廓線並恢復插入的x,y座標?平滑樣條表示 - >的x,y
這往往並非如此,有一個1:X和Y值之間一一對應,所以單變量樣條沒有對我好。二元樣條曲線將被罰款,但據我可以告訴所有的功能在scipy.interpolate
拍X評估二元樣條,y值和返回Z,而我需要給z和返回的x,y(因爲x,y是點在一條線上,每個z映射到唯一的x,y)。
這裏是希望我能夠做一個素描:
import numpy as np
from matplotlib.pyplot import plot
# x,y coordinates of contour points, not monotonically increasing
x = np.array([ 2., 1., 1., 2., 2., 4., 4., 3.])
y = np.array([ 1., 2., 3., 4., 2., 3., 2., 1.])
# f: X --> Y might not be a 1:1 correspondence
plot(x,y,'-o')
# get the cumulative distance along the contour
dist = [0]
for ii in xrange(x.size-1):
dist.append(np.sqrt((x[ii+1]-x[ii])**2 + (y[ii+1]-y[ii])**2))
d = np.array(dist)
# build a spline representation of the contour
spl = ContourSpline(x,y,d)
# resample it at smaller distance intervals
interp_d = np.linspace(d[0],d[-1],1000)
interp_x,interp_y = spl(interp_d)
我不明白怎麼你的'x'和'y'數組不能有一個1: 1對應,並仍然定義曲線上的點...你能嘗試用一個例子來解釋你的想法嗎? – Jaime
嘗試繪製我的例子座標 - 在這種情況下,線曲線回到自身,所以不可能有從X沒有獨特的映射 - > Y或與Y - > X –