point findMeetingPoint(line line_A,line line_B){ point re(-1,-1); double a1,a2,b1,b2,c1,c2; a1=line_A.point_A.y-line_A.point_B.y; a2=line_B.point_A.y-line_B.point_B.y; b1=line_A.point_B.x-line_A.point_A.x; b2=line_B.point_B.x-line_B.point_A.x; if((a1*b2==a2*b1&&a1*a2*b1*b2!=0)||(a1==0&&a2==0)||(b1==0&&b2==0)) return re; c1=line_A.point_A.x*line_A.point_B.y-line_A.point_B.x*line_A.point_A.y; c2=line_B.point_A.x*line_B.point_B.y-line_B.point_B.x*line_B.point_A.y; re.x=(b1*c2-b2*c1)/(b2*a1-b1*a2); re.y=(a1*c2-a2*c1)/(a2*b1-a1*b2); return re; }