# Tag Info

4

Although BSplineFunction[] is sadly limited to machine precision results, it's not too hard in this case to make a function that will give exact results for exact input. You've already given the control points, so the task is a whole lot easier than the situation in this related answer. Just as in that answer, we use the strategy of starting with ...

6

Clearly, OP did not even try to read the answer I linked to in my previous answer. In any event: I merely exploited the block structure of the underlying linear system for the polyharmonic spline. We start with data looking like this: $$\begin{pmatrix}x_1&y_1&z_1\\x_2&y_2&z_2\\&\vdots&\\x_n&y_n&z_n\end{pmatrix}$$ wa = ...

4

The following is (I believe) a better implementation for at least two reasons. First, it doesn't use the old Splines package, but Interpolation[..., Method -> "Spline"] instead. Second, if uses an algorithmic arc length parametrization to get the equispaced points instead of relying on the mesh generated by ParametricPlot which is nice for displaying but ...

2

Your points aren't in order. Change: coord = Cases[Normal@plot, Point[p_] :> p, Infinity] by coord = Sort@Cases[Normal@plot, Point[p_] :> p, Infinity] Then you'll get (Norm /@ Differences@p1)[[1 ;; 5]] (Norm /@ Differences@coord)[[1 ;; 5]] (* {1., 1., 1., 1., 1.} {0.976258, 0.97659, 0.975463, 0.976125, 0.976947} *)

Top 50 recent answers are included