private static string Get_Intersect_Point(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
{
double x;
double y;
double denominateur = ((y4 - y3)*(x2 - x1)) - ((x4 - x3)*(y2 - y1));
double nominateur_1 = ((x4 - x3)*(y1 - y3)) - ((y4 - y3)*(x1 - x3));
double nominateur_2 = ((x2 - x1)*(y1 - y3)) - ((y2 - y1)*(x1 - x3));
//Check if the segments have a unique common point
if (denominateur == 0 | nominateur_1 == 0 | nominateur_2 == 0)
return "Colinear or Paralelle";
//Get the coordonates of the common point
double ua = nominateur_1 / denominateur;
double ub = nominateur_2 / denominateur;
if(ua >= 0.0f && ua <= 1.0f && ub >= 0.0f && ub <= 1.0f)
{
// Get the intersection point
x = x1 + ua*(x2 - x1);
y = y1 + ua*(y2 - y1);
return "X = " + x + " and Y = " + y;
}
return "No intersection point";
}