 GeeksforGeeks App
Open App Browser
Continue

# Find X and Y intercepts of a line passing through the given points

Given two points on a 2D plane, the task is to find the x – intercept and the y – intercept of a line passing through the given points.
Examples:

Input: points[][] = {{5, 2}, {2, 7}}
Output:
6.2
10.333333333333334
Input: points[][] = {{3, 2}, {2, 4}}
Output:
4.0
8.0

Approach:

• Find the slope using the given points.
• Put the value of the slope in the expression of the line i.e. y = mx + c.
• Now find the value of c using the values of any of the given points in the equation y = mx + c
• To find the x-intercept, put y = 0 in y = mx + c.
• To find the y-intercept, put x = 0 in y = mx + c.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to find the X and Y intercepts``// of the line passing through``// the given points``void` `getXandYintercept(``int` `P[], ``int` `Q[])``{``    ``int` `a = P - Q;``    ``int` `b = P - Q;` `    ``// if line is parallel to y axis``    ``if` `(b == 0) {``        ``cout << P << endl; ``// x - intercept will be p``        ``cout << ``"infinity"``; ``// y - intercept will be infinity``        ``return``;``    ``}` `    ``// if line is parallel to x axis``    ``if` `(a == 0) {``        ``cout << ``"infinity"``; ``// x - intercept will be infinity``        ``cout << P << endl; ``// y - intercept will be p``        ``return``;``    ``}` `    ``// Slope of the line``    ``double` `m = a / (b * 1.0);` `    ``// y = mx + c in where c is unknown``    ``// Use any of the given point to find c``    ``int` `x = P;``    ``int` `y = P;``    ``double` `c = y - m * x;` `    ``// For finding the x-intercept put y = 0``    ``y = 0;``    ``double` `r = (y - c) / (m * 1.0);``    ``cout << r << endl;` `    ``// For finding the y-intercept put x = 0``    ``x = 0;``    ``y = m * x + c;``    ``printf``(``"%.8f"``, c);``}` `// Driver code``int` `main()``{``    ``int` `p1[] = { 5, 2 };``    ``int` `p2[] = { 2, 7 };``    ``getXandYintercept(p1, p2);``    ``return` `0;``}` `// This code is contributed by Mohit Kumar`

## Java

 `// Java implementation of the approach``class` `GFG {` `    ``// Function to find the X and Y intercepts``    ``// of the line passing through``    ``// the given points``    ``static` `void` `getXandYintercept(``int` `P[],``                                  ``int` `Q[])``    ``{``        ``int` `a = P[``1``] - Q[``1``];``        ``int` `b = P[``0``] - Q[``0``];` `        ``// if line is parallel to y axis``        ``if` `(b == ``0``) {` `            ``// x - intercept will be p``            ``System.out.println(P[``0``]);` `            ``// y - intercept will be infinity``            ``System.out.println(``"infinity"``);``            ``return``;``        ``}` `        ``// if line is parallel to x axis``        ``if` `(a == ``0``) {` `            ``// x - intercept will be infinity ``            ``System.out.println(``"infinity"``);` `            ``// y - intercept will be p``            ``System.out.println(P[``1``]);``            ``return``;``        ``}` `        ``// Slope of the line``        ``double` `m = a / (b * ``1.0``);` `        ``// y = mx + c in where c is unknown``        ``// Use any of the given point to find c``        ``int` `x = P[``0``];``        ``int` `y = P[``1``];``        ``double` `c = y - m * x;` `        ``// For finding the x-intercept put y = 0``        ``y = ``0``;``        ``double` `r = (y - c) / (m * ``1.0``);``        ``System.out.println(r);` `        ``// For finding the y-intercept put x = 0``        ``x = ``0``;``        ``y = (``int``)(m * x + c);``        ``System.out.print(c);``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `p1[] = { ``5``, ``2` `};``        ``int` `p2[] = { ``2``, ``7` `};``        ``getXandYintercept(p1, p2);``    ``}``}` `// This code is contributed by kanugargng`

## Python3

 `# Python3 implementation of the approach` `# Function to find the X and Y intercepts``# of the line passing through``# the given points``def` `getXandYintercept(P, Q):` `    ``a ``=` `P[``1``] ``-` `Q[``1``]``    ``b ``=` `P[``0``] ``-` `Q[``0``]``    ` `    ``# if line is parallel to y axis``    ``if` `b ``=``=` `0``:``        ``print``(P[``0``])         ``# x - intercept will be p``        ``print``(``"infinity"``)   ``# y - intercept will be infinity``        ``return``    ` `    ``# if line is parallel to x axis``    ``if` `a ``=``=` `0``:``        ``print``(``"infinity"``)     ``# x - intercept will be infinity``        ``print``(P[``1``])           ``# y - intercept will be p``        ``return``    ` `    ` `        ` `    ``# Slope of the line``    ``m ``=` `a ``/` `b``    ` `    ``# y = mx + c in where c is unknown``    ``# Use any of the given point to find c``    ``x ``=` `P[``0``]``    ``y ``=` `P[``1``]``    ``c ``=` `y``-``m ``*` `x``    ` `    ``# For finding the x-intercept put y = 0``    ``y ``=` `0``    ``x ``=``(y``-``c)``/``m``    ``print``(x)``    ` `    ``# For finding the y-intercept put x = 0``    ``x ``=` `0``    ``y ``=` `m ``*` `x ``+` `c``    ``print``(y)` `# Driver code``p1 ``=` `[``5``, ``2``]``p2 ``=` `[``7``, ``2``]``getXandYintercept(p1, p2)`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG {` `    ``// Function to find the X and Y intercepts``    ``// of the line passing through``    ``// the given points``    ``static` `void` `getXandYintercept(``int``[] P,``                                  ``int``[] Q)``    ``{``        ``int` `a = P - Q;``        ``int` `b = P - Q;` `        ``// if line is parallel to y axis``        ``if` `(b == 0) {``            ``Console.WriteLine(P); ``// x - intercept will be p``            ``Console.WriteLine(``"infinity"``); ``// y - intercept will be infinity``            ``return``;``        ``}` `        ``// if line is parallel to x axis``        ``if` `(a == 0) {``            ``Console.WriteLine(``"infinity"``); ``// x - intercept will be infinity``            ``Console.WriteLine(P); ``// y - intercept will be p``            ``return``;``        ``}` `        ``// Slope of the line``        ``double` `m = a / (b * 1.0);` `        ``// y = mx + c in where c is unknown``        ``// Use any of the given point to find c``        ``int` `x = P;``        ``int` `y = P;``        ``double` `c = y - m * x;` `        ``// For finding the x-intercept put y = 0``        ``y = 0;``        ``double` `r = (y - c) / (m * 1.0);``        ``Console.WriteLine(r);` `        ``// For finding the y-intercept put x = 0``        ``x = 0;``        ``y = (``int``)(m * x + c);``        ``Console.WriteLine(c);``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``int``[] p1 = { 5, 2 };``        ``int``[] p2 = { 2, 7 };``        ``getXandYintercept(p1, p2);``    ``}``}` `// This code is contributed by AnkitRai01`

## Javascript

 ``

Output:

```6.2
10.33333333333```

Time Complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up