kml_float_interp2d_eval
这个函数返回给定点(x, y)的插值结果z。计算中使用插值对象interp,数据数组xarr,yarr和zarr以及加速器xacc和yacc。对于x在xarr的区间外或y在yarr的区间外,将返回报错信息。
接口定义
float kml_float_interp2d_eval(const kml_float_interp2d *interp, const float xarr[], const float yarr[], const float zarr[], const float x, const float y, kml_interp_accel *xa, kml_interp_accel *ya)
int kml_float_interp2d_eval_e(const kml_float_interp2d *interp, const float xarr[], const float yarr[], const float zarr[], const float x, const float y, kml_interp_accel *xa, kml_interp_accel *ya, float *z)
参数
参数名  | 
类型  | 
描述  | 
输入/输出  | 
|---|---|---|---|
interp  | 
kml_float_interp2d*  | 
插值对象指针  | 
输入  | 
xarr  | 
float  | 
存有x值的数组  | 
输入  | 
yarr  | 
float  | 
存有y值的数组  | 
输入  | 
zarr  | 
float  | 
存有z值的数组  | 
输入  | 
x  | 
float  | 
求解点x的值  | 
输入  | 
y  | 
float  | 
求解点y的值  | 
输入  | 
xa  | 
kml_interp_accel *  | 
加速器对象指针  | 
输入  | 
ya  | 
kml_interp_accel *  | 
加速器对象指针  | 
输入  | 
z  | 
float *  | 
插值点计算结果  | 
输出  | 
依赖
#include "kml_interp2d.h"
示例
const size_t xMin = 4;
const size_t xMax = 2048;
const size_t xSize = 4;
const size_t yMin = 4;
const size_t yMax = 2048;
const size_t ySize = 4;
const float xValLo = 1;
const float xValHi = 2;
const float yValLo = 1;
const float yValHi = 2;
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));
float x = 1;
float y = 1;
float z = 0;
kml_float_interp2d *interp = kml_float_interp2d_alloc(kml_float_interp2d_bicubic, xSize, ySize);
kml_interp_accel *xacc = kml_interp_accel_alloc();
kml_interp_accel *yacc = kml_interp_accel_alloc();
kml_float_interp2d_init(interp, xArr, yArr, zArr, xSize, ySize);
z = kml_float_interp2d_eval(interp, xArr, yArr, zArr, x, y, xacc, yacc);
父主题: interp2d