Check if a line passes through the origin

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

**Output:**

Yes