Software & Finance





Visual C++ - Check whether given point lies on a Line Segment





Here is the Visual C++ program to check whether given point lies on a line segment or not.

 

Find out the equation for the line seperately Y = MX + C

 

Where M = Slope of a Line and C = Intercept

 

To Find the slope of a line

 

slope = (y2 - y1) / (x2 - x1)

 

To Find the intercept of the line, intercept = y1 - (slope) * x1

 

Where c1 is the intercept of a line and m1 is the slope for the line.

 

NOTE: To check the given point lies on a line, Not a line segment, click here

 


Source Code


#include <iostream>

#include <math.h>

 

void main()

{

    float slope, intercept;

    float x1, y1, x2, y2;

    float px, py;

    float left, top, right, bottom; // Bounding Box For Line Segment

    float dx, dy;

 

    std::cout << "Program to find whether the given point lies with in line segment:\n";

 

    std::cout << "Enter X1: ";

    std::cin >> x1;

 

    std::cout << "Enter Y1: ";

    std::cin >> y1;

 

    std::cout << "Enter X2: ";

    std::cin >> x2;

 

    std::cout << "Enter Y2: ";

    std::cin >> y2;

 

    std::cout << "Enter Point X: ";

    std::cin >> px;

 

    std::cout << "Enter Point Y: ";

    std::cin >> py;

 

    dx = x2 - x1;

    dy = y2 - y1;

 

    slope = dy / dx;

    // y = mx + c

    // intercept c = y - mx

    intercept = y1 - slope * x1; // which is same as y2 - slope * x2

 

    // For Bounding Box

    if(x1 < x2)

    {

        left = x1;

        right = x2;

    }

    else

    {

        left = x2;

        right = x1;

    }

    if(y1 < y2)

    {

        top = y1;

        bottom = y2;

    }

    else

    {

        top = y1;

        bottom = y2;

    }

 

 

    std::cout << "Equation of the line: ";

    std::cout << slope << "X " << ((intercept < 0) ? ' ' : '+') << intercept << "\n";

   

    if( slope * px + intercept > (py - 0.01) &&

        slope * px + intercept < (py + 0.01))

    {

        if( px >= left && px <= right && 

            py >= top && py <= bottom )

        {

            std::cout << "Given point lies in the line segment\n";

        }

        else

            std::cout << "Given point is outside the line segment\n";

 

    }

    else

        std::cout << "The point is outside the line segment\n";

   

}

Output


Program to find whether the given point lies with in line segment:

Enter X1: 1

Enter Y1: 2

Enter X2: 5

Enter Y2: 7

Enter Point X: 2.33

Enter Point Y: 3.67

Equation of the line: 1.25X +0.75

Given point lies in the line segment

Press any key to continue . . .

 

 

 

Program to find whether the given point lies with in line segment:

Enter X1: 1

Enter Y1: 2

Enter X2: 5

Enter Y2: 7

Enter Point X: 2.3

Enter Point Y: 3.6

Equation of the line: 1.25X +0.75

The point is outside the line segment

Press any key to continue . . .