# Program to check if three points are collinear

Given three points, check whether they lie on a straight (collinear) or not**Examples :**

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 basicallyhalf of determinantvalue 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++ 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 not` `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)` ` ` `cout << ` `"Yes"` `;` ` ` `else` ` ` `cout << ` `"No"` `;` `}` `// Driver Code` `int` `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

`// 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 not` `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)` ` ` `printf` `(` `"Yes"` `);` ` ` `else` ` ` `printf` `(` `"No"` `);` `}` `// Driver Code` `int` `main()` `{` ` ` `int` `x1 = 1, x2 = 1, x3 = 1,` ` ` `y1 = 1, y2 = 4, y3 = 5;` ` ` `collinear(x1, y1, x2, y2, x3, y3);` ` ` `return` `0;` `}` |

## Java

`// 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

`# Python program to check` `# if three points are collinear` `# or not using area of triangle.` `# function to check if` `# point collinear or not` `def` `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 Code` `x1, x2, x3, y1, y2, y3 ` `=` `1` `, ` `1` `, ` `1` `, ` `1` `, ` `4` `, ` `5` `collinear(x1, y1, x2, y2, x3, y3)` `# This code is contributed` `# by Sachin Bisht` |

## C#

`// 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` `// PHP or not using area of triangle.` `/* function to check if` `point 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.` `?>` |

## Javascript

`<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++

`// A C++ program` `// Slope based solution to check` `// if three points are collinear.` `#include <bits/stdc++.h>` `using` `namespace` `std;` `/* function to check if` `point 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 Code` `int` `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)` |

## C

`// Slope based solution to check` `// if three points are collinear.` `#include <stdio.h>` `#include <math.h>` `/* function to check if` `point 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 Code` `int` `main()` `{` ` ` `int` `x1 = 1, x2 = 1, x3 = 0,` ` ` `y1 = 1, y2 = 6, y3 = 9;` ` ` `collinear(x1, y1, x2, y2, x3, y3);` ` ` `return` `0;` `}` |

## Java

`// Slope based solution to check` `// if three points are collinear.` `import` `java.io.*;` `class` `GFG {` `/* function to check if` `point 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` |

## Python

`# Slope based solution to check if three` `# points are collinear.` ` ` `# function to check if` `# point collinear or not` `def` `collinear(x1, y1, x2, y2, x3, y3):` ` ` ` ` `if` `((y3 ` `-` `y2)` `*` `(x2 ` `-` `x1) ` `=` `=` `(y2 ` `-` `y1)` `*` `(x3 ` `-` `x2)):` ` ` `print` `(` `"Yes"` `)` ` ` `else` `:` ` ` `print` `(` `"No"` `)` ` ` `# Driver Code` `x1, x2, x3, y1, y2, y3 ` `=` `1` `, ` `1` `, ` `0` `, ` `1` `, ` `6` `, ` `9` `collinear(x1, y1, x2, y2, x3, y3);` `# This code is contributed` `# by Sachin Bisht` |

## C#

`// Slope based solution to check` `// if three points are collinear.` `using` `System;` `class` `GFG` `{` ` ` `/* function to check if` `point 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 Code` `static` `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

`<?php` `// Slope based solution to check` `// if three points are collinear.` `/* function to check if` `point 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` `?>` |

## Javascript

`<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.