function [x,y,result]=circlelineintersection(x_1,x_2,y_1,y_2,r) d_x = x_2-x_1; d_y = y_2-y_1; d_r = sqrt(d_x^2+d_y^2); D = x_1*y_2-x_2*y_1; x = (D*d_y - sign(d_y)*d_x*sqrt(r^2*d_r^2-D^2))/(d_r^2) ; x = [x,(D*d_y + sign(d_y)*d_x*sqrt(r^2*d_r^2-D^2))/(d_r^2)]; y = (-D*d_x - abs(d_y)*sqrt(r^2*d_r^2-D^2))/(d_r^2); y = [y,(-D*d_x + abs(d_y)*sqrt(r^2*d_r^2-D^2))/(d_r^2)]; Delta=r^2*d_r^2-D^2 if(Delta<0) result=0;% amonaxsni kompleqsuria elseif(Delta==0) result=1;% ert saerto wertili elseif(Delta>0) result=2;% ori sarto wertili end return end