![]() |
Bsoft 2.1.4
Bernard's software package
|
Header file for spline interpolation. More...
#include "Vector3.h"
Functions | |
Vector3< double > * | vector3_catmull_rom_spline (long ncoord, Vector3< double > *coords, long &nspline) |
Calculates a 2D/3D spline curve using the Catmull-Rom algorithm. More... | |
Header file for spline interpolation.
Vector3< double > * vector3_catmull_rom_spline | ( | long | ncoord, |
Vector3< double > * | coords, | ||
long & | nspline | ||
) |
Calculates a 2D/3D spline curve using the Catmull-Rom algorithm.
ncoord | number of coordinates. |
*coords | node or point coordinates. |
&nspline | pointer to number of values in spline curve. |
A Catmull-Rom spline curve is defined for 4 points {p0,p1,p2,p3} by: spline = 0.5*(-t*(1-t)^2)*p0 + (2-5*t^2+3*t^3)*p1 + t*(1+4*t-3*t^2)*p2 - t^2*(1-t)*p3 where 0 <= t <= 1 is the fractional distance between points p1 and p2. Each dimension is interpolated separately. The end segments of the spline are defined as straight lines.