ftkurvpd calculates an interpolatory spline for closed parametric curves; it also calculates first and second derivatives of the interpolatory spline. ftkurvpd is in the Fitgrid package -- a package containing 1D and 2D interpolators using cubic splines under tension.
procedure ftkurvpd( xi[*] : float, yi[*] : float, t[*] : float, xo[*] : float, yo[*] : float, xd[*] : float, yd[*] : float, xdd[*] : float, ydd[*] : float )
The only control parameter that applies to ftkurvpd is: sig.
Given a sequence of distinct input points ( (x[0],y[0]), ... , (x[n-1],y[n-1]), the interpolated curve is parameterized by mapping points in the interval [0.,1.] onto the interpolated curve. The resulting curve has a parametric representation both of whose components are splines under tension and functions of the polygonal arc length. The value 0. is mapped onto (x[0],y[0]) and the value 1. is mapped onto (x[0],y[0]) as well (completing the closed curve).
The value for the parameter sig specifies the tension factor. Values near zero result in a cubic spline; large values (e.g. 50) result in nearly a polygonal line. A typical value is 1. (the default).
You can extrapolate values with ftcurvpd (that is calculate interpolated values for abscissae outside of the domain of the input), but these values are, in general, unreliable.
begin x = (/ 3.0, 4.0, 9.0, 16.0, 21.0, 27.0, \ 34.0, 36.0, 34.0, 26.0, 18.0 /) y = (/ 2.4, 9.6, 14.4, 12.0, 9.6, 8.4, \ 13.2, 21.6, 30.0, 37.2, 38.4 /) mpts = 201 u = fspan(0.,1.,mpts) xo = new( (/ mpts /), float) yo = new( (/ mpts /), float) xd = new( (/ mpts /), float) yd = new( (/ mpts /), float) xdd = new( (/ mpts /), float) ydd = new( (/ mpts /), float) ftkurvpd(x, y, u, xo, yo, xd, yd, xdd, ydd) end
NG4.1 Home, Index, Examples, Glossary, Feedback, Ref Contents, Ref WhereAmI?