这个函数返回插值函数对于给定点(x, y)的偏导。计算中使用插值对象spline,数据数组xarr,yarr和zarr以及加速器xacc和yacc。对于x在xarr的区间外或y在yarr的区间外,将返回报错信息。
float kml_float_spline2d_eval_deriv_y(const kml_float_spline2d *spline, const float x, const float y, kml_interp_accel *xa, kml_interp_accel *ya)
int kml_float_spline2d_eval_deriv_y_e(const kml_float_spline2d *spline, const float x, const float y, kml_interp_accel *xa, kml_interp_accel *ya, float *z)
double kml_double_spline2d_eval_deriv_y(const kml_double_spline2d *spline, const double x, const double y,
kml_interp_accel *xa, kml_interp_accel *ya);
int kml_double_spline2d_eval_deriv_y_e(const kml_double_spline2d *spline, const double x, const double y,
kml_interp_accel *xa, kml_interp_accel *ya, double *z);
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
spline |
kml_float_spline2d*, kml_double_spline2d* |
插值对象指针 |
输入 |
x |
float, double |
求解点x的值 |
输入 |
y |
float, double |
求解点y的值 |
输入 |
xa |
kml_interp_accel * |
加速器对象指针 |
输入 |
ya |
kml_interp_accel * |
加速器对象指针 |
输入 |
z |
float *, double * |
插值点偏导值∂z/∂y计算结果 |
输出 |
#include "kipl.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_spline2d *spline = kml_float_spline2d_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_spline2d_init(spline, xArr, yArr, zArr, xSize, ySize); z = kml_float_spline2d_eval_deriv_y(spline, xArr, yArr, zArr, x, y, xacc, yacc);