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++
#include <bits/stdc++.h>
using namespace std;
void getXandYintercept( int P[], int Q[])
{
int a = P[1] - Q[1];
int b = P[0] - Q[0];
if (b == 0) {
cout << P[0] << endl;
cout << "infinity" ;
return ;
}
if (a == 0) {
cout << "infinity" ;
cout << P[1] << endl;
return ;
}
double m = a / (b * 1.0);
int x = P[0];
int y = P[1];
double c = y - m * x;
y = 0;
double r = (y - c) / (m * 1.0);
cout << r << endl;
x = 0;
y = m * x + c;
printf ( "%.8f" , c);
}
int main()
{
int p1[] = { 5, 2 };
int p2[] = { 2, 7 };
getXandYintercept(p1, p2);
return 0;
}
|
Java
class GFG {
static void getXandYintercept( int P[],
int Q[])
{
int a = P[ 1 ] - Q[ 1 ];
int b = P[ 0 ] - Q[ 0 ];
if (b == 0 ) {
System.out.println(P[ 0 ]);
System.out.println( "infinity" );
return ;
}
if (a == 0 ) {
System.out.println( "infinity" );
System.out.println(P[ 1 ]);
return ;
}
double m = a / (b * 1.0 );
int x = P[ 0 ];
int y = P[ 1 ];
double c = y - m * x;
y = 0 ;
double r = (y - c) / (m * 1.0 );
System.out.println(r);
x = 0 ;
y = ( int )(m * x + c);
System.out.print(c);
}
public static void main(String[] args)
{
int p1[] = { 5 , 2 };
int p2[] = { 2 , 7 };
getXandYintercept(p1, p2);
}
}
|
Python3
def getXandYintercept(P, Q):
a = P[ 1 ] - Q[ 1 ]
b = P[ 0 ] - Q[ 0 ]
if b = = 0 :
print (P[ 0 ])
print ( "infinity" )
return
if a = = 0 :
print ( "infinity" )
print (P[ 1 ])
return
m = a / b
x = P[ 0 ]
y = P[ 1 ]
c = y - m * x
y = 0
x = (y - c) / m
print (x)
x = 0
y = m * x + c
print (y)
p1 = [ 5 , 2 ]
p2 = [ 7 , 2 ]
getXandYintercept(p1, p2)
|
C#
using System;
class GFG {
static void getXandYintercept( int [] P,
int [] Q)
{
int a = P[1] - Q[1];
int b = P[0] - Q[0];
if (b == 0) {
Console.WriteLine(P[0]);
Console.WriteLine( "infinity" );
return ;
}
if (a == 0) {
Console.WriteLine( "infinity" );
Console.WriteLine(P[1]);
return ;
}
double m = a / (b * 1.0);
int x = P[0];
int y = P[1];
double c = y - m * x;
y = 0;
double r = (y - c) / (m * 1.0);
Console.WriteLine(r);
x = 0;
y = ( int )(m * x + c);
Console.WriteLine(c);
}
public static void Main()
{
int [] p1 = { 5, 2 };
int [] p2 = { 2, 7 };
getXandYintercept(p1, p2);
}
}
|
Javascript
<script>
function getXandYintercept(P, Q)
{
let a = P[1] - Q[1];
let b = P[0] - Q[0];
if (b == 0) {
document.write(P[0] + "</br>" );
document.write( "infinity" + "</br>" );
return ;
}
if (a == 0) {
document.write( "infinity" + "</br>" );
document.write(P[1] + "</br>" );
return ;
}
let m = a / (b * 1.0);
let x = P[0];
let y = P[1];
let c = y - m * x;
y = 0;
let r = (y - c) / (m * 1.0);
document.write(r + "</br>" );
x = 0;
y = parseInt(m * x + c, 10);
document.write(c.toFixed(11) + "</br>" );
}
let p1 = [ 5, 2 ];
let p2 = [ 2, 7 ];
getXandYintercept(p1, p2);
</script>
|
Output
6.2
10.33333333333
Time Complexity: O(1)
Auxiliary Space: O(1)
Last Updated :
06 Jan, 2024
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...