Exemple #1
0
        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
            });
        }
Exemple #2
0
        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);
        }