Program to check if three points are collinear

03 Jun, 2022
Given three points, check whether they lie on a straight (collinear) or notExamples :  
Input : (1, 1), (1, 4), (1, 5)
Output : Yes 
The points lie on a straight line

Input : (1, 5), (2, 5), (4, 6)
Output : No 
The points do not lie on a straight line
 
First approach Three points lie on the straight line if the area formed by the triangle of these three points is zero. So we will check if the area formed by the triangle is zero or not 
Formula for area of triangle is : 
0.5 * [x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)]

The formula is basically half of determinant
value of following.
x1 x2 x3
y1 y2 y3
1   1  1

The above formula is derived from shoelace formula.

If this equals zero then points lie on a straight line 
C++
C
Java
Python
C#
PHP
Javascript
// C++ program to check if three// points are collinear or not// using area of triangle.#include <bits/stdc++.h>#include <math.h>#include <stdlib.h> using namespace std;// function to check if point// collinear or notvoid collinear(int x1, int y1, int x2,               int y2, int x3, int y3){    // Calculation the area of    // triangle. We have skipped    // multiplication with 0.5    // to avoid floating point    // computations    int a = x1 * (y2 - y3) +            x2 * (y3 - y1) +            x3 * (y1 - y2);     if (a == 0)        cout << "Yes";    else        cout << "No";} // Driver Codeint main(){    int x1 = 1, x2 = 1, x3 = 1,        y1 = 1, y2 = 4, y3 = 5;    collinear(x1, y1, x2, y2, x3, y3);    return 0;} // This code is contributed// by Akanksha Rai(Abby_akku)
// C program to check if three// points are collinear or not// using area of triangle.#include <stdio.h>#include <math.h>#include <stdlib.h> // function to check if point// collinear or notvoid collinear(int x1, int y1, int x2,               int y2, int x3, int y3){    // Calculation the area of    // triangle. We have skipped    // multiplication with 0.5    // to avoid floating point    // computations    int a = x1 * (y2 - y3) +            x2 * (y3 - y1) +            x3 * (y1 - y2);     if (a == 0)        printf("Yes");    else        printf("No");} // Driver Codeint main(){    int x1 = 1, x2 = 1, x3 = 1,        y1 = 1, y2 = 4, y3 = 5;    collinear(x1, y1, x2, y2, x3, y3);    return 0;}
// Java program to check if// three points are collinear// or not using area of triangle.class GFG{         // function to check if    // point collinear or not    static void collinear(int x1, int y1, int x2,                          int y2, int x3, int y3)    {                 /* Calculation the area of        triangle. We have skipped        multiplication with 0.5        to avoid floating point        computations */        int a = x1 * (y2 - y3) +                x2 * (y3 - y1) +                x3 * (y1 - y2);             if (a == 0)            System.out.println("Yes");        else            System.out.println("No");    }             // Driver Code    public static void main(String args[])    {        int x1 = 1, x2 = 1, x3 = 1,            y1 = 1, y2 = 4, y3 = 5;                                     collinear(x1, y1, x2, y2, x3, y3);     }} // This code is contributed by Sam007.
# Python program to check# if three points are collinear# or not using area of triangle. # function to check if# point collinear or notdef collinear(x1, y1, x2, y2, x3, y3):         """ Calculation the area of         triangle. We have skipped        multiplication with 0.5 to        avoid floating point computations """    a = x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)     if (a == 0):        print "Yes"    else:        print "No" # Driver Codex1, x2, x3, y1, y2, y3 = 1, 1, 1, 1, 4, 5collinear(x1, y1, x2, y2, x3, y3) # This code is contributed# by Sachin Bisht
// C# program to check if// three points are collinear// or not using area of triangle.using System; class GFG{         /* function to check if    point collinear or not */    static void collinear(int x1, int y1, int x2,                          int y2, int x3, int y3)    {                 /* Calculation the area of         triangle. We have skipped        multiplication with 0.5 to        avoid floating point computations */        int a = x1 * (y2 - y3) +                x2 * (y3 - y1) +                x3 * (y1 - y2);             if (a == 0)            Console.Write("Yes");        else            Console.Write("No");    }         // Driver code    public static void Main ()    {        int x1 = 1, x2 = 1, x3 = 1,            y1 = 1, y2 = 4, y3 = 5;                                     collinear(x1, y1, x2, y2, x3, y3);    }} // This code is contributed by Sam007.
<?php// PHP or not using area of triangle. /* function to check ifpoint collinear or not */function collinear($x1, $y1, $x2,                   $y2, $x3, $y3){    /* Calculation the area of    triangle. We have skipped    multiplication with 0.5 to    avoid floating point computations */    $a = $x1 * ($y2 - $y3) +         $x2 * ($y3 - $y1) +         $x3 * ($y1 - $y2);     if ($a == 0)        printf("Yes");    else        printf("No");} // Driver Code$x1 = 1; $x2 = 1; $x3 = 1;$y1 = 1; $y2 = 4; $y3 = 5;collinear($x1, $y1, $x2, $y2, $x3, $y3); // This code is contributed by Sam007.?>
<script>// Javascript program to check if three// points are collinear or not// using area of triangle. function collinear(x1,  y1,  x2, y2,  x3,  y3){     // Calculation the area of    // triangle. We have skipped    // multiplication with 0.5    // to avoid floating point    // computations    var a = x1 * (y2 - y3) +            x2 * (y3 - y1) +            x3 * (y1 - y2);     if (a == 0)        document.write("Yes");    else        document.write( "No");} var x1 = 1, x2 = 1, x3 = 1,y1 = 1, y2 = 4, y3 = 5;    collinear(x1, y1, x2, y2, x3, y3); // This code is contributed by akshitsaxenaa09.</script>
Output :  
Yes
Time Complexity: O(1)
Auxiliary Space: O(1) Second approach  
For three points, slope of any pair of points
must be same as other pair.

For example, slope of line joining (x2, y2)
and (x3, y3), and line joining (x1, y1) and
(x2, y2) must be same.

(y3 - y2)/(x3 - x2) = (y2 - y1)/(x2 - x1)

In other words, 
(y3 - y2)(x2 - x1) = (y2 - y1)(x3 - x2) 
 
C++
C
Java
Python
C#
PHP
Javascript
// A C++ program// Slope based solution to check// if three points are collinear.#include <bits/stdc++.h>using namespace std; /* function to check ifpoint collinear or not*/void collinear(int x1, int y1, int x2, int y2, int x3,               int y3){    if ((y3 - y2) * (x2 - x1) == (y2 - y1) * (x3 - x2))        cout << "Yes" << endl;    else        cout << "No" << endl;} // Driver Codeint main(){    int x1 = 1, x2 = 1, x3 = 0, y1 = 1, y2 = 6, y3 = 9;    collinear(x1, y1, x2, y2, x3, y3);    return 0;} // The code is contributed by Gautam goel (gautamgoel962)
// Slope based solution to check// if three points are collinear.#include <stdio.h>#include <math.h> /* function to check ifpoint collinear or not*/void collinear(int x1, int y1, int x2,               int y2, int x3, int y3){    if ((y3 - y2) * (x2 - x1) ==        (y2 - y1) * (x3 - x2))        printf("Yes");    else        printf("No");} // Driver Codeint main(){    int x1 = 1, x2 = 1, x3 = 0,        y1 = 1, y2 = 6, y3 = 9;    collinear(x1, y1, x2, y2, x3, y3);    return 0;}
// Slope based solution to check// if three points are collinear. import java.io.*; class GFG { /* function to check ifpoint collinear or not*/static void cool_line(int x1, int y1, int x2,            int y2, int x3, int y3){    if ((y3 - y2) * (x2 - x1) ==        (y2 - y1) * (x3 - x2))        System.out.println("Yes");    else        System.out.println("No");} // Driver Code         public static void main (String[] args) {        int a1 = 1, a2 = 1, a3 = 0,        b1 = 1, b2 = 6, b3 = 9;       cool_line(a1, b1, a2, b2, a3, b3);                      }}//This Code is Contributed by ajit
# Slope based solution to check if three# points are collinear.  # function to check if# point collinear or notdef collinear(x1, y1, x2, y2, x3, y3):        if ((y3 - y2)*(x2 - x1) == (y2 - y1)*(x3 - x2)):        print ("Yes")    else:        print ("No")  # Driver Codex1, x2, x3, y1, y2, y3 = 1, 1, 0, 1, 6, 9collinear(x1, y1, x2, y2, x3, y3); # This code is contributed# by Sachin Bisht
// Slope based solution to check// if three points are collinear.using System; class GFG{     /* function to check ifpoint collinear or not*/static void cool_line(int x1, int y1, int x2,                      int y2, int x3, int y3){    if ((y3 - y2) * (x2 - x1) ==        (y2 - y1) * (x3 - x2))        Console.WriteLine("Yes");    else        Console.WriteLine("No");} // Driver Codestatic public void Main (){    int a1 = 1, a2 = 1, a3 = 0,    b1 = 1, b2 = 6, b3 = 9;    cool_line(a1, b1, a2, b2, a3, b3);}} // This code is contributed by ajit
<?php// Slope based solution to check// if three points are collinear. /* function to check ifpoint collinear or not*/function collinear($x1, $y1, $x2,                   $y2, $x3, $y3){    if (($y3 - $y2) * ($x2 - $x1) ==        ($y2 - $y1) * ($x3 - $x2))        echo ("Yes");    else        echo ("No");} // Driver Code$x1 = 1;$x2 = 1;$x3 = 0;$y1 = 1;$y2 = 6;$y3 = 9;collinear($x1, $y1, $x2,          $y2, $x3, $y3); // This code is contributed by ajit?>
<script>// Slope based solution to check// if three points are collinear./*     * function to check if point collinear or not     */    function cool_line(x1 , y1 , x2 , y2 , x3 , y3)    {        if ((y3 - y2) * (x2 - x1) == (y2 - y1) * (x3 - x2))            document.write("Yes");        else            document.write("No");    }     // Driver Code        var a1 = 1, a2 = 1, a3 = 0, b1 = 1, b2 = 6, b3 = 9;        cool_line(a1, b1, a2, b2, a3, b3); // This code is contributed by aashish1995</script>
Output :  
No 
Time Complexity: O(1)
Auxiliary Space: O(1)
This article is contributed by Pranav. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. 
Sam007
jit_t
Akanksha_Rai
aashish1995
akshitsaxenaa09
CoderSaty
simranarora5sos
rohitsingh07052
gautamgoel962
Geometric
Geometric
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Program for distance between two points on earth
Find if two rectangles overlap
Check whether triangle is valid or not if sides are given
Line Clipping | Set 1 (Cohen–Sutherland Algorithm)
Program for Point of Intersection of Two Lines
Window to Viewport Transformation in Computer Graphics with Implementation
Find K Closest Points to the Origin
Closest Pair of Points | O(nlogn) Implementation
Haversine formula to find distance between two points on a sphere
Check if a point lies inside a rectangle | Set-2