public Point CalculateIntersection(Straight FirstStraight, Straight SecondStraight) { //1) y1 = k*x1 + b //2) y2 = k*x2 + b var firstCoeff = FindСoefficients(FirstStraight); var secondCoeff = FindСoefficients(SecondStraight); //y = k1*x + b1 //y = k2*x + b2 var intersection = FindPoint(firstCoeff, secondCoeff); return(new Point() { X = intersection.x, Y = intersection.y }); }
private static (float k, float b) FindСoefficients(Straight straight) { var y1 = straight.FirstPoint.Y; var x1 = straight.FirstPoint.X; var y2 = straight.SecondPoint.Y; var x2 = straight.SecondPoint.X; //1) y1 = k*x1 + b //2) y2 = k*x2 + b //b = y1 - k*x1 //y2 = k*x2 + y1 - k*x1 //y2 - y1 = (x2 - x1)*k //k = (y2-y1)/(x2 - x1) //tempY = y2-y1 //tempX = x2 - x1 var tempY = y2 - y1; var tempX = x2 - x1; var k = tempY == 0 && tempX == 0 ? 0.0f : tempY / tempX; var b = y1 - (k * x1); return(k, b); }