博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
样条之EHMT插值函数
阅读量:4575 次
发布时间:2019-06-08

本文共 1320 字,大约阅读时间需要 4 分钟。

 核心代码:

1 // 2 // 埃特金插值 3 // 4 static float GetValueEhmt(const void* valuesPtr, int stride, int n, float t, float dc) 5 {  6     int i,j; 7     float z,s,p,q,v,d; 8  9     // 初值10     z = 0.0f;11 12     // 特例处理13     if (n < 1) 14     {15         return(z);16     }17     if (n == 1) 18     { 19         z = YfGetFloatValue(valuesPtr, stride, 0);  20         return(z);21     }22 23     float h = 1.0f/(n - 1);24 25     for (i = 1; i <= n; i++)26     { 27         s = 1.0; 28         q = (i-1)*h;29         for (j = 1; j <= n; j++)30         { 31             p = (j-1)*h;32             if (j != i) 33             {34                 s = s*(t-p)/(q-p);35             }36         }37 38         s = s*s;39         p = 0.0f;40         for (j = 1; j <= n; j++)41         {42             if (j != i) 43             {44                 p = p+1.0f/(q-(j-1)*h);45             }46         }47 48         v = YfGetFloatValue(valuesPtr, stride, i - 1);  49         if (i < n)50         {51             d = YfGetFloatValue(valuesPtr, stride, i) - v;52         }53         else54         {55             d = v - YfGetFloatValue(valuesPtr, stride, i - 2); 56         }57 58         q = v + (t-q)*(d*dc-2.0f*v*p);59         z = z + q*s;60     }61 62     return(z);63 }

切图:

 

相关软件的下载地址为:

转载于:https://www.cnblogs.com/WhyEngine/p/4020424.html

你可能感兴趣的文章
模板方法模式(TemplateMethod)
查看>>
常用正则表达式
查看>>
valgrind的callgrind工具进行多线程性能分析
查看>>
ListBox禁止默认的上下快捷键
查看>>
freetype
查看>>
关于http请求头:http-equiv
查看>>
mybatis大于小于的转义
查看>>
iOS调试通过UILocalNotification或RemoteNotification启动的app
查看>>
HTTP状态码详解
查看>>
iOS9 网络适配
查看>>
数学题【1】
查看>>
列表和元组的基本操作,for遍历,range
查看>>
flutter & plugins
查看>>
Oracle-EXP-00011 表不存在
查看>>
Python的平凡之路(8)
查看>>
条件语句,while循环语句:完整的温度转换程序
查看>>
如何从零开始搭建高性能直播平台?
查看>>
free -g 说明
查看>>
[国家集训队]矩阵乘法
查看>>
读取excel模板填充数据 并合并相同文本单元格
查看>>