예제 #1
0
 def _get_f_r_s(axis_point_1,axis_point_2, moving_coor, fixed_coor):
   fc_proj = project_point_on_axis(axis_point_1, axis_point_2, fixed_coor)
   mc_proj = project_point_on_axis(axis_point_1, axis_point_2, moving_coor)
   f = (fixed_coor[0]-fc_proj[0],fixed_coor[1]-fc_proj[1],fixed_coor[2]-fc_proj[2])
   r = (moving_coor[0]-mc_proj[0],moving_coor[1]-mc_proj[1],moving_coor[2]-mc_proj[2])
   ap_21 = (axis_point_2[0]-axis_point_1[0], axis_point_2[1]-axis_point_1[1], axis_point_2[2]-axis_point_1[2])
   r_norm = math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2])
   r_home = flex.vec3_double([(r[0]/r_norm, r[1]/r_norm, r[2]/r_norm)])
   ap_21_norm = math.sqrt(ap_21[0]*ap_21[0]+ap_21[1]*ap_21[1]+ap_21[2]*ap_21[2])
   theta_home = flex.vec3_double([(ap_21[0]/ap_21_norm, ap_21[1]/ap_21_norm, ap_21[2]/ap_21_norm)])
   tt = theta_home.cross(r_home)
   s_home = tt*(1/tt.norm())
   return flex.vec3_double([f]), s_home, r_norm, r_home
예제 #2
0
 def _get_f_r_s(axis_point_1,axis_point_2, moving_coor, fixed_coor):
   fc_proj = project_point_on_axis(axis_point_1, axis_point_2, fixed_coor)
   mc_proj = project_point_on_axis(axis_point_1, axis_point_2, moving_coor)
   f = (fixed_coor[0]-fc_proj[0],fixed_coor[1]-fc_proj[1],fixed_coor[2]-fc_proj[2])
   r = (moving_coor[0]-mc_proj[0],moving_coor[1]-mc_proj[1],moving_coor[2]-mc_proj[2])
   ap_21 = (axis_point_2[0]-axis_point_1[0], axis_point_2[1]-axis_point_1[1], axis_point_2[2]-axis_point_1[2])
   r_norm = math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2])
   r_home = flex.vec3_double([(r[0]/r_norm, r[1]/r_norm, r[2]/r_norm)])
   ap_21_norm = math.sqrt(ap_21[0]*ap_21[0]+ap_21[1]*ap_21[1]+ap_21[2]*ap_21[2])
   theta_home = flex.vec3_double([(ap_21[0]/ap_21_norm, ap_21[1]/ap_21_norm, ap_21[2]/ap_21_norm)])
   tt = theta_home.cross(r_home)
   s_home = tt*(1/tt.norm())
   return flex.vec3_double([f]), s_home, r_norm, r_home