|
马上注册,结交更多同行朋友,交流,分享,学习。
您需要 登录 才可以下载或查看,没有帐号?注册
x
在一个新的工作坐标系下画圆
怎么得到的圆心坐标和输入的不一样呢?
是不是要转换坐标系,具体该怎么做~~
大虾们帮我看看呗
谢咯~~
部分代码如下
//建立工作坐标系
double x_vec[3],y_vec[3];
double csys_origin[3];
tag_t matrix_id;
tag_t csys_id;
double matrix_values[9];
x_vec[0]=cut_point[0][0]-p3[max_num][0];
x_vec[1]=cut_point[0][1]-p3[max_num][1];
x_vec[2]=cut_point[0][2]-p3[max_num][2];
y_vec[0]=pro_point_coords[0]-p3[max_num][0];
y_vec[1]=pro_point_coords[1]-p3[max_num][1];
y_vec[2]=pro_point_coords[2]-p3[max_num][2];
csys_origin[0] = p3[max_num][0];
csys_origin[1] = p3[max_num][1];
csys_origin[2] = p3[max_num][2];
UF_MTX3_initialize (x_vec,y_vec, matrix_values);
UF_CSYS_create_matrix (matrix_values, &matrix_id);
UF_CSYS_create_csys (csys_origin,matrix_id,&csys_id);
UF_CSYS_set_wcs(csys_id);
//做圆弧
UF_CURVE_arc_t arc_coords;
tag_t arc_id;
//double cut_point_co1[3];
//UF_CSYS_map_point (UF_CSYS_ROOT_WCS_COORDS,cut_point_co,UF_CSYS_ROOT_COORDS,cut_point_co1);
arc_coords.start_angle = -45.0 * DEGRA;
arc_coords.end_angle = 45.0 * DEGRA;
arc_coords.arc_center[0] =p3[max_num][0]; //cut_point_co1[0];
arc_coords.arc_center[1] =p3[max_num][1]; //cut_point_co1[1];
arc_coords.arc_center[2] =p3[max_num][2];// cut_point_co1[2];
arc_coords.radius = dist1;
UF_CALL(UF_CSYS_ask_wcs(&csys_id));
UF_CALL(UF_CSYS_ask_matrix_of_object(csys_id,&arc_coords.matrix_tag));
UF_CALL(UF_CURVE_create_arc(&arc_coords,&arc_id)); |
|