对于插值对象spline,这个函数将做初始化操作。数据(xarr, yarr, zarr)中,xarr和yarr分别是大小为xsize和ysize的数组,zarr是函数结果数组,大小为xsize * ysize。插值对象(kml_float_spline2d,kml_double_spline2d)不保存xarr,yarr,zarr的数据数组,它只存有从数据中计算出的静态状态。xarr和yarr数据数组被认为是严格升序排列的。
int kml_float_spline2d_init(kml_float_spline2d *spline, const float xarr[], const float yarr[], const float zarr[], size_t xsize, size_t ysize)
int kml_double_spline2d_init(kml_double_spline2d *spline, const double xarr[], const double yarr[], const double zarr[],
size_t xsize, size_t ysize);
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
spline |
kml_float_spline2d*, kml_double_spline2d* |
插值对象指针。 |
输出 |
xarr |
float, double |
存有x值的数组。 |
输入 |
yarr |
float, double |
存有y值的数组。 |
输入 |
zarr |
float, double |
存有z值的数组。 |
输入 |
xsize |
size_t |
x数组长度。 |
输入 |
ysize |
size_t |
y数组长度。 |
输入 |
#include "kipl.h"
const size_t xSize = 4; const size_t ySize = 4; float xArr[4] = {1,1.33,1.67,2}; float yArr[4] = {1,1.33,1.67,2}; float* zArr = (float*)malloc(xSize * ySize * sizeof(float)); kml_float_spline2d *spline = kml_float_spline2d_alloc(kml_float_interp2d_bicubic, xSize, ySize); kml_float_spline2d_init(spline, xArr, yArr, zArr, xSize, ySize);