iCAx开思工具箱

标题: (求教)关于通过点做三次b样条曲线的程序 [打印本页]

作者: 描述    时间: 2007-1-23 16:14
标题: (求教)关于通过点做三次b样条曲线的程序
各位大侠
不会做!时间又紧!谁做过相关的程序能给小弟看一下吗?不胜感激!
作者: 小米粒儿    时间: 2007-1-24 10:16
int i;
         double knotseq[19+4];
  double pole_array[19*4];
  double x,y,z,angle,w = 1.0;
  double delta_u = 1.0/((double)(19-4+1));
  double r,I,r0,p1;
  int k_fixup;
  int p_fixup;
  tag_t spline_id1;

for(i = 0; i < 4; i++) {
    knotseq = 0.0;
  }
  for(i = 19; i < 19 + 4; i++) {
    knotseq = 1.0;
  }
  i = 0;
  angle =0.0;
   
  while( i < 19*4){
x=(r+3*(1-cos(angle)+0.5*angle*sin(angle))+1.2*(angle-0.5*angle*cos(angle)-0.5*sin(angle)))*cos(angle);
y=(r+3*(1-cos(angle)+0.5*angle*sin(angle))+1.2*(angle-0.5*angle*cos(angle)-0.5*sin(angle)))*sin(angle);   
z=0.0;
angle = angle+PI/18;
    pole_array[i++] = x;
    pole_array[i++] = y;
    pole_array[i++] = z;
    pole_array[i++] = 1.0;
         }

  for(i = 4; i < 19 ; i++){
    knotseq = (i-3)*delta_u;
  }
UF_MODL_create_spline(19,4,knotseq,pole_array,
                        &spline_id1,&k_fixup,&p_fixup);
这个是我以前做过的一个样条 曲线,希望对你有用。其实,在UG的安装盘下面,有个UGOPEN文件夹。这个文件夹里的东西大概有2种:一种是*.c一种是*.h,其中*.h是函数原型和数据结构的定义,而*.c一般是函数的应用例子,那里的例子很全的,你可以上那里找
作者: 描述    时间: 2007-2-27 08:46
非常感谢“小米粒儿“!
不胜感激!我支持你 !




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3