|
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.