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++
/* 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
// 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. |
Python3
# 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#
// 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 // 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. ?> |
Javascript
<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)
This article is contributed by Aarti_Rathi. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!