Given two coordinates of a line as (x1, y1) and (x2, y2), find if the line passing through these points also passes through origin or not.
Examples:
Input : (x1, y1) = (10, 0) (x2, y2) = (20, 0) Output : Yes The line passing through these points clearly passes through the origin as the line is x axis. Input : (x1, y1) = (1, 28) (x2, y2) = (2, 56) Output : Yes
Approach: Equation of a line passing through two points (x1, y1) and (x2, y2) is given by
y-y1 = ((y2-y1) / (x2-x1))(x-x1) + c
If line is also passing through origin, then c=0, so equation of line becomes
y-y1 = ((y2-y1) / (x2-x1))(x-x1)
Keeping x=0, y=0 in the above equation we get,
x1(y2-y1) = y1(x2-x1)
So above equation must be satisfied if any line passing through two coordinates (x1, y1) and (x2, y2) also passes through origin (0, 0).
/* C++ program to find if line passing through two coordinates also passes through origin
or not */
#include <bits/stdc++.h> using namespace std;
bool checkOrigin( int x1, int y1, int x2, int y2)
{ return (x1 * (y2 - y1) == y1 * (x2 - x1));
} // Driver code int main()
{ if (checkOrigin(1, 28, 2, 56) == true )
cout << "Yes" ;
else
cout << "No" ;
return 0;
} |
// Java program to find if line passing through // two coordinates also passes through origin // or not import java.io.*;
class GFG {
static boolean checkOrigin( int x1, int y1,
int x2, int y2)
{
return (x1 * (y2 - y1) == y1 * (x2 - x1));
}
// Driver code
public static void main (String[] args)
{
if (checkOrigin( 1 , 28 , 2 , 56 ) == true )
System.out.println( "Yes" );
else
System.out.println( "No" );
}
} // This code is contributed by Ajit. |
# Python program to find if line # passing through two coordinates # also passes through origin or not def checkOrigin(x1, y1, x2, y2):
return (x1 * (y2 - y1) = = y1 * (x2 - x1))
# Driver code if (checkOrigin( 1 , 28 , 2 , 56 ) = = True ):
print ( "Yes" )
else :
print ( "No" )
# This code is contributed # by Anant Agarwal. |
// C# program to find if line passing through // two coordinates also passes through origin // or not using System;
class GFG {
static bool checkOrigin( int x1, int y1,
int x2, int y2)
{
return (x1 * (y2 - y1) == y1 * (x2 - x1));
}
// Driver code
public static void Main()
{
if (checkOrigin(1, 28, 2, 56) == true )
Console.WriteLine( "Yes" );
else
Console.WriteLine( "No" );
}
} // This code is contributed by vt_m. |
<?php // PHP program to find if // line passing through // two coordinates also // passes through origin // or not function checkOrigin( $x1 , $y1 ,
$x2 , $y2 )
{ return ( $x1 * ( $y2 - $y1 ) ==
$y1 * ( $x2 - $x1 ));
} // Driver code if (checkOrigin(1, 28, 2, 56) == true)
echo ( "Yes" );
else echo ( "No" );
// This code is contributed by Ajit. ?> |
<script> // JavaScript program to find if line passing through // two coordinates also passes through origin // or not function checkOrigin(x1, y1, x2, y2)
{
return (x1 * (y2 - y1) == y1 * (x2 - x1));
}
// Driver Code if (checkOrigin(1, 28, 2, 56) == true )
document.write( "Yes" );
else
document.write( "No" );
// This code is contributed by chinmoy1997pal.
</script> |
Yes
Time Complexity: O(1)
Auxiliary Space: O(1)