Given three lines equation,
a1x + b1y + c1 = 0
a2x + b2y + c2 = 0
a3x + b3y + c3 = 0
The task is to check whether the given three lines are concurrent or not. Three straight lines are said to be concurrent if they pass through a point i.e., they meet at a point.
Examples:
Input : a1 = 2, b1 = -3, c1 = 5 a2 = 3, b2 = 4, c2 = -7 a3 = 9, b3 = -5, c3 = 8 Output : Yes Input : a1 = 2, b1 = -3, c1 = 5 a2 = 3, b2 = 4, c2 = -7 a3 = 9, b3 = -5, c3 = 4 Output : No
Let
a1x + b1y + c1 = 0 ………. (1)
a2x + b2y + c2 = 0 ………. (2)
a3x + b3y + c3 = 0 ………. (3)
Suppose the eqn (i) and (ii) intersets at (x1, y1). Then (x1, y1) will satisfy bothe equations.
Therefore, solving (i) and (ii) using method of cross-multiplication, we get,
(x1/b1c2 – b2c1) = (y1/c1a2 – c2a1) = (1/a1b2 – a2b1)
Therefore,
x1 = (b1c2 – b2c1/a1b2 – a2b1) and
y1 = (c1a2 – c2a1/a1b2 – a2b1), a1b2 – a2b1 != 0
Therefore, the required coodinates of the point of intersection of the lines (i) and (ii) are
(b1c2 – b2c1/a1b2 – a2b1, c1a2 – c2a1/a1b2 – a2b1)
For, three of line to be concurrent, (x1, y1) must satisfy the equation (iii) as well.
So,
a3x + b3y + c3 = 0
=> a3(b1c2 – b2c1/a1b2 – a2b1) + b3(c1a2 – c2a1/a1b2 – a2b1) + c3 = 0
=> a3(b1c2 – b2c1) + b3(c1a2 – c2a1) + c3(a1b2 – a2b1) = 0
So, we only need to check if above condition satisfy or not.
Below is the implemenatation of this approach:
C++
// CPP Program to check if three straight // line are concurrent or not #include <bits/stdc++.h> using namespace std; // Return true if three line are concurrent, // else false. bool checkConcurrent( int a1, int b1, int c1, int a2, int b2, int c2, int a3, int b3, int c3) { return (a3 * (b1 * c2 - b2 * c1) + b3 * (c1 * a2 - c2 * a1) + c3 * (a1 * b2 - a2 * b1) == 0); } // Driven Program int main() { int a1 = 2, b1 = -3, c1 = 5; int a2 = 3, b2 = 4, c2 = -7; int a3 = 9, b3 = -5, c3 = 8; (checkConcurrent(a1, b1, c1, a2, b2, c2, a3, b3, c3) ? (cout << "Yes" ) : (cout << "No" )); return 0; } |
Java
// Java Program to check if three straight // line are concurrent or no import java.io.*; class GFG { // Return true if three line are concurrent, // else false. static boolean checkConcurrent( int a1, int b1, int c1, int a2, int b2, int c2, int a3, int b3, int c3) { return (a3 * (b1 * c2 - b2 * c1) + b3 * (c1 * a2 - c2 * a1) + c3 * (a1 * b2 - a2 * b1) == 0 ); } // Driven Program public static void main (String[] args) { int a1 = 2 , b1 = - 3 , c1 = 5 ; int a2 = 3 , b2 = 4 , c2 = - 7 ; int a3 = 9 , b3 = - 5 , c3 = 8 ; if (checkConcurrent(a1, b1, c1, a2, b2, c2, a3, b3, c3)) System.out.println( "Yes" ); else System.out.println( "No" ); } } // This code is contributed by anuj_67. |
Python 3
# Python3 Program to check if three straight # line are concurrent or not # Return true if three line are concurrent, # else false. def checkConcurrent(a1, b1, c1, a2, b2, c2, a3, b3, c3): return (a3 * (b1 * c2 - b2 * c1) + b3 * (c1 * a2 - c2 * a1) + c3 * (a1 * b2 - a2 * b1) = = 0 ) # Driven Program a1 = 2 b1 = - 3 c1 = 5 a2 = 3 b2 = 4 c2 = - 7 a3 = 9 b3 = - 5 c3 = 8 if (checkConcurrent(a1, b1, c1, a2, b2, c2, a3, b3, c3)): print ( "Yes" ) else : print ( "No" ) # This code is contributed by Smitha |
C#
// C# Program to check if three straight // line are concurrent or no using System; class GFG { // Return true if three line are concurrent, // else false. static bool checkConcurrent( int a1, int b1, int c1, int a2, int b2, int c2, int a3, int b3, int c3) { return (a3 * (b1 * c2 - b2 * c1) + b3 * (c1 * a2 - c2 * a1) + c3 * (a1 * b2 - a2 * b1) == 0); } // Driven Program public static void Main () { int a1 = 2, b1 = -3, c1 = 5; int a2 = 3, b2 = 4, c2 = -7; int a3 = 9, b3 = -5, c3 = 8; if (checkConcurrent(a1, b1, c1, a2, b2, c2, a3, b3, c3)) Console.WriteLine( "Yes" ); else Console.WriteLine( "No" ); } } // This code is contributed by anuj_67. |
PHP
<?php // PHP Program to check if three straight // line are concurrent or not // Return true if three line are // concurrent, else false. function checkConcurrent( $a1 , $b1 , $c1 , $a2 , $b2 , $c2 , $a3 , $b3 , $c3 ) { return ( $a3 * ( $b1 * $c2 - $b2 * $c1 ) + $b3 * ( $c1 * $a2 - $c2 * $a1 ) + $c3 * ( $a1 * $b2 - $a2 * $b1 ) == 0); } // Driver Code $a1 = 2; $b1 = -3; $c1 = 5; $a2 = 3; $b2 = 4; $c2 = -7; $a3 = 9; $b3 = -5; $c3 = 8; if (checkConcurrent( $a1 , $b1 , $c1 , $a2 , $b2 , $c2 , $a3 , $b3 , $c3 )) echo "Yes" ; else echo "No" ; // This code is contributed by anuj_67. ?> |
Yes
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.