![]() | ![]() | Gwyddion Data Processing Library Reference Manual | ![]() |
---|
interpolation — General interpolation functions
enum GwyInterpolationType; gdouble gwy_interpolation_get_dval (gdouble x, gdouble x1_, gdouble y1_, gdouble x2_, gdouble y2_, GwyInterpolationType interpolation); gdouble gwy_interpolation_get_dval_of_equidists (gdouble x, gdouble *data, GwyInterpolationType interpolation);
typedef enum { GWY_INTERPOLATION_NONE = 0, GWY_INTERPOLATION_ROUND = 1, GWY_INTERPOLATION_BILINEAR = 2, GWY_INTERPOLATION_KEY = 3, GWY_INTERPOLATION_BSPLINE = 4, GWY_INTERPOLATION_OMOMS = 5, GWY_INTERPOLATION_NNA = 6 } GwyInterpolationType;
Interpolation type selection.
GWY_INTERPOLATION_NONE | no interpolation, resulting values should not be directly used |
GWY_INTERPOLATION_ROUND | round interpolation (nearest neighbour interpolation) |
GWY_INTERPOLATION_BILINEAR | bilinear interpolation |
GWY_INTERPOLATION_KEY | Key interpolation |
GWY_INTERPOLATION_BSPLINE | Bspline interpolation |
GWY_INTERPOLATION_OMOMS | O-moms interpolation |
GWY_INTERPOLATION_NNA | nearest neighbour approximation |
gdouble gwy_interpolation_get_dval (gdouble x, gdouble x1_, gdouble y1_, gdouble x2_, gdouble y2_, GwyInterpolationType interpolation);
This function uses two-point interpolation methods to get interpolated value between two arbitrary data points.
x : | requested value coordinate |
x1_ : | x coordinate of first value |
y1_ : | y coordinate of first value |
x2_ : | x coordinate of second value |
y2_ : | y coordinate of second value |
interpolation : | interpolation type |
Returns : | interpolated value |
gdouble gwy_interpolation_get_dval_of_equidists (gdouble x, gdouble *data, GwyInterpolationType interpolation);
Function computes interpolateed value bettween 2 or 4 equidistant values. For using GWY_INTERPOLATION_NONE, GWY_INTERPOLATION_ROUND or GWY_INTERPOLATION_BILINEAR it is enough to use data in format {0, data[i], data[i+1], 0} and function computes value at data[i+x]. For four value interpolations you have to prapare data as {data[i-1], data[i], data[i+1], data[i+2]} and function again returns value at data[i+x].
x : | noninteger part of requested x |
data : | array of 4 gdoubles (see below) |
interpolation : | interpolation type |
Returns : | interpolated value |
<< inttrans | linestats >> |