Есть гладкая кривая на плоскости, заданная набором координат. Нужно выполнить глобальную интерполяцию этой кривой и получить новые координаты, разбивающие кривую на приблизительно равные по длине части. Кривая может быть и замкнутая и разомкнутая. Тоже самое нужно сделать в пространстве.
Чтобы не изобретать велосипед, пытаюсь найти решение в scipy. Есть интересная функция scipy.interpolate.splprep (как я понял находит B-сплайны для N-мерных кривых «Find the B-spline representation of an N-dimensional curve», т.е. и на плоскости и в пространстве будут работать) и удалось частично понять как сработать на плоскости
tt=numpy.linspace(numpy.pi,-numpy.pi,N+1,endpoint=True)
X[:,0]=numpy.cos(tt)
X[:,1]=numpy.sin(tt)
...
if is_interpolate:
tck,u = interpolate.splprep([X[:,0],X[:,1]],k=3,s=0)
unew=numpy.linspace(1.0,0.0,nt+1,endpoint=True)
out = interpolate.splev(unew,tck)
Прошу поделится опытом и может знаете какие-нибуть ссылки на статьи, книжки, которые помогут понять работу splprep. Может какой-нить специализированный формум знаете.