设zarr在网格点(i,j)处为z。
int kml_float_interp2d_set(const kml_float_interp2d *interp, float zarr[], const size_t i, const size_t j, const float z)
int kml_double_interp2d_set(const kml_double_interp2d *interp, double zarr[], const size_t i, const size_t j,
const double z);
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
interp |
kml_float_interp2d*, kml_double_interp2d* |
插值对象指针。 |
输入 |
zarr |
float, double |
存有z值的数组。 |
输出 |
i |
size_t |
x方向的index。 |
输入 |
j |
size_t |
y方向的index。 |
输入 |
z |
float |
要改变的z值。 |
输入 |
#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)); float x = 1; float y = 1; float z = 0; kml_float_interp2d *interp = kml_float_interp2d_alloc(kml_float_interp2d_bicubic, xSize, ySize); kml_float_interp2d_init(interp, xArr, yArr, zArr, xSize, ySize); z = kml_float_interp2d_eval(interp, xArr, yArr, zArr, x, y, xacc, yacc); kml_float_interp2d_set(interp, zArr, x, y, z);