一、问题求解
空间直线同球体交点问题求解,为求解二元二次方程问题,下面是求解过程
二、代码实现
1、代码实现
1 void cal_q ( double par_x, double par_y, double par_z, double par_r, double bpx, double bpy, double bpz, double spx, double spy, double spz ) { 2 double x_1, x_2, y_1, y_2, z_1, z_2; 3 4 if ( bpx != spx ) { 5 double k_xy = ( spy - bpy ) / ( spx - bpx ); 6 double b_xy = bpy - k_xy * bpx; 7 8 double k_zx = ( spz - bpz ) / ( spx - bpx ); 9 double b_zx = bpz - k_zx * bpx; 10 11 double A = 1 + k_xy * k_xy + k_zx * k_zx; 12 double B = 2 * k_xy * ( b_xy - par_y ) + 2 * k_zx * ( b_zx - par_z ) - 2 * par_x; 13 double C = par_x * par_x + ( b_xy - par_y ) * ( b_xy - par_y ) + ( b_zx - par_z ) * ( b_zx - par_z ) - par_r * par_r; 14 15 x_1 = ( -B + sqrt