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