广州营销型企业网站建设seoul是什么意思中文
最近在写一个判断圆孔深度和通盲状态的功能,发现PK_BODY_pick_topols射线函数可以设置到射线垂直距离,相当于一个圆柱空间,但在测试发现,R7的孔,设置:
max_edge_dist = 0.007; max_vertices = 0.007;
结果测试发现返回值中小于7mm,通过设置pick_approx = PK_pick_approximate_no_c,也没有起作用。
在尝试调整离散曲线,并设置曲线弦长之后,结果越来越接近7mm,但如果将公差调整非常小,测试结果又恢复到默认值。
如果是直线边,测试结果准确,对于曲线边界,需要公差设置,而且必须在合理范围内的公差。
以上是我的测试记录,遇到问题的可以参考。如果有哪个参数可以直接设置,还望留言指正。
/*获取圆柱空间内面、体对象*/ //初始化射线区域PK_BODY_pick_topols_o_t rayOptions;PK_BODY_pick_topols_o_m(rayOptions);rayOptions.max_faces = 1;rayOptions.max_edges = 1;rayOptions.max_vertices = 1;rayOptions.method = PK_BODY_pick_radial_c;rayOptions.is_curve_chord_tol = PK_LOGICAL_true;rayOptions.curve_chord_tol = 0.00001 * 0.001;rayOptions.pick_approx = PK_pick_approximate_no_c;rayOptions.max_edge_dist = radius * 0.001;rayOptions.max_vertices = radius * 0.001;rayOptions.near_plane = PK_LOGICAL_true;rayOptions.near_point.coord[0] = topCenterPt[0] * 0.001;rayOptions.near_point.coord[1] = topCenterPt[1] * 0.001;rayOptions.near_point.coord[2] = topCenterPt[2] * 0.001;rayOptions.far_plane = PK_LOGICAL_true;rayOptions.far_point.coord[0] = (topCenterPt[0] + refDir[0] * depth ) * 0.001;rayOptions.far_point.coord[1] = (topCenterPt[1] + refDir[1] * depth ) * 0.001;rayOptions.far_point.coord[2] = (topCenterPt[2] + refDir[2] * depth ) * 0.001;//PK_AXIS1_sf_t rayAxis;rayAxis.location.coord[0] = topCenterPt[0] * 0.001;rayAxis.location.coord[1] = topCenterPt[1] * 0.001;rayAxis.location.coord[2] = topCenterPt[2] * 0.001;rayAxis.axis.coord[0] = refDir[0];rayAxis.axis.coord[1] = refDir[1];rayAxis.axis.coord[2] = refDir[2];//PK_BODY_pick_topols_r_t pickedInfor;PK_PART_t bodies[1] = { t_pkObject };//PK_BODY_pick_topols(1, bodies, PK_ENTITY_null, &rayAxis,&rayOptions, &pickedInfor);