如何用有限个点拟合出光滑的曲线

胶河渔翁

胶河渔翁

2016-02-19 17:58

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的如何用有限个点拟合出光滑的曲线教程,一起来看看吧!超容易上手~

  /* 二次抛物线法绘制曲线函数 */
  
  void paowuxian(int *x,int *y,int n,unsigned int k)
  
  {
  unsigned int i,j;
  float t1,t2,t3,t,a,b,c,d,tx,ty;
  *x=*(x+1);*(y)=*(y+1);
  *(x+n+1)=*(x+n);*(y+n+1)=*(y+n);
  t=0.5/k;
  setcolor(10);
  moveto(*(x+1),*(y+1));
  for(i=0;in-1;i++)
    {
    for(j=1;jk;j++)
      {
      t1=j*t;
      t2=t1*t1;
      t3=t2*t1;
      a=4*t2-t1-4*t3;
      b=1-10*t2+12*t3;
      c=t1+8*t2-12*t3;
      d=4*t3-2*t2;
      tx=a*(*(x+i))+b*(*(x+i+1))+c*(*(x+i+2))+d*(*(x+i+3));
      ty=a*(*(y+i))+b*(*(y+i+1))+c*(*(y+i+2))+d*(*(y+i+3));
      lineto(tx,ty);
      }
    }
    lineto(*(x+i+2),*(y+i+2));
  }
  
  /* 二次B样条法绘制曲线函数 */
  
  void byangtiao(int *x,int *y,int n,unsigned int k)
  {
  unsigned int i,j;
  float t,t1,t2,a,b,c,tx,ty;
  *x=*(x+1);*y=*(y+1);
  *(x+n+1)=*(x+n);*(y+n+1)=*(y+n);
  t=1.0/k;
  setcolor(13);
  moveto((*x+(*(x+1)))/2.0,(*y+(*(y+1)))/2.0);
  for(i=0;in;i++)
    {
    for(j=1;jk;j++)
      {
      t1=j*t;
      t2=t1*t1;
      a=(t2-2*t1+1)/2.0;
      b=t1-t2+1/2.0;
      c=t2/2.0;
      tx=a*(*(x+i))+b*(*(x+i+1))+c*(*(x+i+2));
      ty=a*(*(y+i))+b*(*(y+i+1))+c*(*(y+i+2));
      lineto(tx,ty);
      }
    }
  }
  
  /*这个忘了是什么算法了。:)似乎是叫三次参数样条法*/
  
  void parspl(int p[][2],int n,int k)
  {
  int i,j;
  float t1,t2,t3,t,a,b,c,d,x,y;
  p[0][0]=p[1][0];p[0][1]=p[1][1];
  p[n+1][0]=p[n][0];p[n+1][1]=p[n][1];
  t=0.5/k;
  moveto(p[1][0],p[1][1]+D);
  for(i=0;in-1;i++)
    {
    for(j=1;jk;j++)
      {
      t1=j*t;
      t2=t1*t1;
      t3=t2*t1;
      a=4*t2-t1-4*t3;
      b=1-10*t2+12*t3;
      c=t1+8*t2-12*t3;
      d=4*t3-2*t2;
      x=a*p[i][0]+b*p[i+1][0]+c*p[i+2][0]+d*p[i+3][0];
      y=a*p[i][1]+b*p[i+1][1]+c*p[i+2][1]+d*p[i+3][1];
      lineto(x,y,15);
      }
    }
    lineto(p[i+2][0],p[i+2][1],15);
  } 
展开更多 50%)
分享

猜你喜欢

如何用有限个点拟合出光滑的曲线

编程语言 网络编程
如何用有限个点拟合出光滑的曲线

利用CAD曲线拟合绘制样条曲线

cad教程 autocad教程 CAD
利用CAD曲线拟合绘制样条曲线

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

excel曲线拟合方法图解

excel
excel曲线拟合方法图解

excel曲线拟合怎么弄

excel
excel曲线拟合怎么弄

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Photoshop钢笔工具制作光滑的曲线

电脑网络
Photoshop钢笔工具制作光滑的曲线

Illustrator绘制复杂光滑曲线教程

Illustrator CorelDRAW
Illustrator绘制复杂光滑曲线教程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

moveNext 方法

moveNext 方法

关于2.0 中的用户控件编程使用

关于2.0 中的用户控件编程使用
下拉加载更多内容 ↓