---
title: kml_?_spline2d_init
description: "对于插值对象spline，这个函数将做初始化操作。数据(xarr, yarr, zarr)中，xarr和yarr分别是大小为xsize和ysize的数组，zarr是函数结果数组，大小为xsize * ysize。插值对象（kml_float_spline2d，kml_double_spline2d）不保存xarr，yarr，zarr的数据数组，它只存有从数据中计算出的静态状态。xarr和yarr数据数组必须是严格升序排列的。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0532.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0532.html
indexId: de4b5954d7d033b08c3ab16b7c7d6b6ac7d33aabbea26da1cb9b6d070430efc061
---
# kml_?_spline2d_init

对于插值对象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);
```
