样条之埃尔米特(Hermite)插值函数
核心代码:
//////////////////////////////////////////////////////////////////////
// 埃尔米特等距插值
//////////////////////////////////////////////////////////////////////
static float GetValueHermite(const void* valuesPtr, int stride, int n, float t, float dc)
{
int i,j;
float z,s,p,q, v, d; // 初值
z = 0.0; // 特例处理
if (n < )
{
return(z);
}
if (n == )
{
z = YfGetFloatValue(valuesPtr, stride, );
return(z);
} float xStep = 1.0f/(n - ); // 循环插值
for (i = ; i <= n; i++)
{
s = 1.0f;
q = (i-)*xStep; for (j = ; j <= n; j++)
{
p = (j-)*xStep;
if (j != i)
{
s = s*(t-p)/(q-p);
}
} s = s*s;
p = 0.0f; for (j = ; j <= n; j++)
{
if (j != i)
{
p = p+1.0f/(q-((j-)*xStep));
}
} v = YfGetFloatValue(valuesPtr, stride, i - );
if (i < n)
{
d = YfGetFloatValue(valuesPtr, stride, i) - v;
}
else
{
d = v - YfGetFloatValue(valuesPtr, stride, i - );
} q = v + (t-q)*(d*dc-2.0f*v*p);
z = z + q*s;
} return(z);
}
切图:


相关软件的下载地址为:http://files.cnblogs.com/WhyEngine/TestSpline.zip
样条之埃尔米特(Hermite)插值函数的更多相关文章
- 样条之埃尔米特(Hermite)
埃尔米特(Charles Hermite,1822—1901) 法国数学家.巴黎综合工科学校毕业.曾任法兰西学院.巴黎高等师范学校.巴黎大学教授.法兰西科学院院士.在函数论.高等代数.微分方程等方面都 ...
- 样条之Akima光滑插值函数
核心代码: ////////////////////////////////////////////////////////////////////// // Akima光滑插值 // t - 存放指 ...
- 分段三次Hermite插值及其与三次样条的比较
分段三次 Hermite 插值多项式 (PCHIP) 语法 p = pchip(x,y,xq) pp = pchip(x,y) 说明 p = pchip(x,y,xq) 返回与 xq 中的查询点对 ...
- [Python] Hermite 插值
# -*- coding: utf-8 -*- #Program 0.5 Hermite Interpolation import matplotlib.pyplot as plt import nu ...
- scipy插值与拟合
原文链接:https://zhuanlan.zhihu.com/p/28149195 1.最小二乘拟合 实例1 import numpy as np import matplotlib.pyplot ...
- 转Python SciPy库——拟合与插值
1.最小二乘拟合 实例1 import numpy as np import matplotlib.pyplot as plt from scipy.optimize import leastsq p ...
- python scipy样条插值函数大全(interpolate里interpld函数)
scipy样条插值 scipy样条插值1.样条插值法是一种以可变样条来作出一条经过一系列点的光滑曲线的数学方法.插值样条是由一些多项式组成的,每一个多项式都是由相邻的两个数据点决定的,这样,任意的两个 ...
- 样条之拉格朗日Lagrange(一元全区间)插值函数
这是使用拉格朗日插值函数生成的样条曲线.在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法.许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过 ...
- Hermite (埃尔米特)曲线
Hermite 曲线 已知曲线的两个端点坐标P0.P1,和端点处的切线R0.R1,确定的一条曲线. 参数方程 1. 几何形式 2. 矩阵形式 3. 推导 例子分析 如上图有四个点,假如P0.P2是端点 ...
随机推荐
- 每日踩坑 2018-01-09 WebAPI会如何面对URL中的空串string参数?
这个问题是我的同事问我的,可能有点 low 哈. 同事审查我的代码,表示应该对 URL 中的 string 参数进行一个空验证. 我倾向于认为,会无法匹配到路由方法. 然后我就写了一个Test, [H ...
- 解决浏览器抛出乱码,(HTML、PHP等的乱码问题)
在Windows上编写html或php代码的时候,本地编辑器设置的文件编码格式是utf-8保存,但是浏览器打开页面的时候经常出现乱码,而且浏览器自动检测到的页面编码为GBK格式,这时候我就开始纳闷了? ...
- Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) C. Destroying Array 带权并查集
C. Destroying Array 题目连接: http://codeforces.com/contest/722/problem/C Description You are given an a ...
- HDU 5738 Eureka 统计共线的子集个数
Eureka 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5738 Description Professor Zhang draws n poin ...
- 跟着老王学Python
亲爱的朋友: 欢迎你!很高兴能在这里见到你,你能来到这里说明你真的很喜欢python,很想把python给学好!我觉的你很幸运,开始我学python的时候比较少资料,学起来也比较头疼,现在随着 ...
- IBM BR10i阵列卡配置Raid0/Raid1(转)
说明:IBM的阵列卡无论多旧多新操作步骤都基本差不多. RAID1的步骤: 开机自检过程中出现ctrl+c提示,按ctrl+c进入LSI Logic Config Utility v6.10.02.0 ...
- 使用CefSharp在.Net程序中嵌入Chrome浏览器(四)——启动优化
在实际使用过程中,发现有的客户端会出现chrome加载网页过慢问题,定位后发现很多是因为设置系统代理所致,此时可以通过如下启动参数禁止系统代理. {"proxy-auto-detect&qu ...
- LPC43xx SGPIO Slice 输入输出连接表
- 「GIT SourceTree冲突」解决方案
现在程序猿标配GIT作为代码管理,但是从SVN到GIT学习中,其中GIT的冲突是一个难点,常常会导致Push不上去,Pull不下来,很尴尬的地步,还不知道自己写的代码被覆盖没,废话不多说,直接上干货! ...
- delphi project of object
http://www.cnblogs.com/ywangzi/archive/2012/08/28/2659811.html 其实要了解这些东西,适当的学些反汇编,WINDOWS内存管理机制,PE结构 ...