使用了 libspline,对其进行了封装,主要代码如下:
1、构造
VOID *CreateInterp(INTERP_TYPE type, UINT32 pointNum, const POINT_DOUBLE *pPoint)
{
INTERP_INNER *pInterpInner = NULL;
UINT32 i;
if ((pointNum < 2) || (NULL == pPoint))
{
return -1;
}
pInterpInner = (INTERP_INNER *)safe_malloc(sizeof(INTERP_INNER));
if (NULL == pInterpInner)
{
return -1;
}
pInterpInner->type = type;
pInterpInner->num = pointNum;
pInterpInner->pX = (DOUBLE *)safe_malloc(pointNum * sizeof(DOUBLE) * 2);
if (NULL == pInterpInner->pX)
{
goto EXIT;
}
pInterpInner->pY = pInterpInner->pX + pointNum;
for (i=0; i<pointNum; i++)
{
pInterpInner->pX[i] = pPoint[i].x;
本文介绍了如何在Linux环境中利用C语言封装libspline库进行曲线插值运算,包括构造插值对象、计算插值点及操作结束的步骤。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



