iCAx开思工具箱

标题: 创建曲线,谁做过,zzz看一下下面的代码吧 [打印本页]

作者: mizzle    时间: 2004-10-22 16:56
标题: 创建曲线,谁做过,zzz看一下下面的代码吧
如下代码是ug/api里的一个例子,但是不能画出来曲线,帮忙看一下吧
  int degree = 3;
  int periodicity = 0;
  int num_points = NUMBER_POINTS;
  /* Point/slope curve attribute array */
  UF_CURVE_pt_slope_crvatr_t point_data[NUMBER_POINTS];
  /* Arrays of user's defining point data */
  double parameters[NUMBER_POINTS] = {0.00,  0.17,  0.32,  0.45, 1.29};
  double points[3*NUMBER_POINTS] = {1.1000,  0.5320,  2.0000,
                                    1.5240,  0.6789,  2.3000,
                                    2.0000,  0.9000,  3.5956,
                                    2.3456,  1.3456,  3.7890,
                                    3.1000,  2.4567,  3.3214};
  int slopeTypes[NUMBER_POINTS] = {UF_CURVE_SLOPE_DIR,
                                   UF_CURVE_SLOPE_AUTO,
                                   UF_CURVE_SLOPE_NONE,
                                   UF_CURVE_SLOPE_DIR,
                                   UF_CURVE_SLOPE_VEC};
  double slopeVecs[3*NUMBER_POINTS] = {1.2300,  5.0506,  4.0360,
                                       0.0000,  0.0000,  0.0000,
                                       0.0000,  0.0000,  0.0000,
                                       0.5000,  1.0000,  0.5000,
                                       1.0000, -2.0000,  1.0000};
  int crvatrTypes[NUMBER_POINTS] = {UF_CURVE_CRVATR_NONE,
                                    UF_CURVE_CRVATR_AUTO_DIR,
                                    UF_CURVE_CRVATR_NONE,
                                    UF_CURVE_CRVATR_VEC,
                                    UF_CURVE_CRVATR_VEC};
  double crvatrVecs[3*NUMBER_POINTS] = {0.0000,  0.0000,  0.0000,
                                     1.0000,  2.5780,  5.6700,
                                     0.0000,  0.0000,  0.0000,
                                     1.0000,  -1.0000,  1.0000,
                                    -1.0000,  -1.0000,  -1.0000};
  int i, save_def_data = 1;
  tag_t spline_tag;
  for (i= 0;   i<NUMBER_POINTS;   i++)
  {
    point_data.point[0] = points[3*i];
    point_data.point[1] = points[3*i+1];
    point_data.point[2] = points[3*i+2];
    point_data.slope_type = slopeTypes;
    point_data.slope[0] = slopeVecs[3*i];
    point_data.slope[1] = slopeVecs[3*i+1];
    point_data.slope[2] = slopeVecs[3*i+2];
    point_data.crvatr_type = crvatrTypes;
    point_data.crvatr[0] = crvatrVecs[3*i];
    point_data.crvatr[1] = crvatrVecs[3*i+1];
    point_data.crvatr[2] = crvatrVecs[3*i+2];
  }
  /* Create B-spline curve */
    UF_CURVE_create_spline_thru_pts(degree,periodicity,num_points,point_data,parameters,save_def_data,[$spline_tag)]
  
上面的代码是在一个按钮的回调函数中的。
作者: 深夜摔键盘    时间: 2004-10-22 17:22
可以创建的。
可能你的线画的太小了,,fit view来看




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