zoukankan      html  css  js  c++  java
  • 样条之EHMT插值函数

     核心代码:

     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         else
    54         {
    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 }

    切图:

     

    相关软件的下载地址为:http://files.cnblogs.com/WhyEngine/TestSpline.zip

  • 相关阅读:
    内存与缓存认识
    翻转字符串里的单词
    c++ STD Gems07
    C++ STD Gems06
    C++ STD Gems05
    Silverlight RIA Services基础专题
    超漂亮的WPF界面框架(Modern UI for WPF)
    实验三——阶乘
    实验二
    实验一 Java环境的搭建&Eclipse的安装
  • 原文地址:https://www.cnblogs.com/WhyEngine/p/4020424.html
Copyright © 2011-2022 走看看