# Reflection of a point at 180 degree rotation of another point

Given two points coordinates **(x _{1}, y_{1})** and

**(x**on 2D plane. The task is to find the reflection of (x

_{2}, y_{2})_{1}, y

_{1}) at 180 degree rotation of (x

_{2}, y

_{2}).

**Examples:**

Input : x_{1}= 0, y_{1}= 0, x_{2}= 1, y_{2}= 1 Output : (2, 2)

Input : x_{1}= 1, y_{1}= 1, x_{2}= 2, y_{2}= 2 Output : (3, 3)

Let the reflection point of point (x_{1}, y_{1}) about (x_{2}, y_{2}) be (x’, y’).

For (x’, y’) be the 180 degree rotation of point (x_{1}, y_{1}) around point (x_{2}, y_{2}), they all must be collinear i.e all the three point must lie on a same straight line. Also, observe (x_{2}, y_{2}) will became mid point between (x_{1}, y_{1}) and (x’, y’).

So,

x’ – x_{2} = x_{2} – x_{1}

y’ – y_{2} = y_{2} – y_{1}

x’ = 2 * x_{2} – x_{1}

y’ = 2 * y_{2} – y_{1}

Below is the implementation of this approach:

## C++

`// CPP Program tof find the 180 degree reflection` `// of one point around another point.` `#include <bits/stdc++.h>` `using` `namespace` `std;` `void` `findPoint(` `int` `x1, ` `int` `y1, ` `int` `x2, ` `int` `y2)` `{` ` ` `cout << ` `"("` `<< 2 * x2 - x1 << ` `", "` ` ` `<< 2 * y2 - y1 << ` `")"` `;` `}` `int` `main()` `{` ` ` `int` `x1 = 0, y1 = 0, x2 = 1, y2 = 1;` ` ` `findPoint(x1, y1, x2, y2);` ` ` `return` `0;` `}` |

## Java

`// Java Program to find the 180 degree` `// reflection of one point around` `// another point.` `class` `GFG {` ` ` ` ` `static` `void` `findPoint(` `int` `x1, ` `int` `y1,` ` ` `int` `x2, ` `int` `y2)` ` ` `{` ` ` `System.out.println(` `"("` `+ (` `int` `)(` `2` `* x2 - x1)` ` ` `+ ` `","` `+ (` `int` `)(` `2` `* y2 - y1 ) + ` `" )"` `);` ` ` `}` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `main(String args[])` ` ` `{` ` ` `int` `x1 = ` `0` `, y1 = ` `0` `, x2 = ` `1` `, y2 = ` `1` `;` ` ` ` ` `findPoint(x1, y1, x2, y2);` ` ` `}` `}` `// This code is contributed by Arnab Kundu.` |

## Python3

`# Python3 Program for find the 180` `# degree reflection of one point` `# around another point.` `def` `findPoint(x1, y1, x2, y2):` ` ` `print` `(` `"("` `, ` `2` `*` `x2 ` `-` `x1 , ` `","` `,` ` ` `2` `*` `y2 ` `-` `y1 ,` `")"` `);` `# Driver Code` `x1 ` `=` `0` `;` `y1 ` `=` `0` `;` `x2 ` `=` `1` `;` `y2 ` `=` `1` `;` `findPoint(x1, y1, x2, y2);` `# This code is contributed by mits` |

## C#

`// C# Program to find the 180 degree reflection` `// of one point around another point.` `using` `System;` `public` `class` `GFG {` ` ` ` ` `static` `void` `findPoint(` `int` `x1, ` `int` `y1,` ` ` `int` `x2, ` `int` `y2)` ` ` `{` ` ` `Console.WriteLine(` `"("` `+ (` `int` `)(2 * x2 - x1)` ` ` `+ ` `","` `+ (` `int` `)(2 * y2 - y1 ) + ` `" )"` `);` ` ` `}` ` ` ` ` `// Driver code` ` ` `static` `public` `void` `Main(String []args)` ` ` `{` ` ` `int` `x1 = 0, y1 = 0, x2 = 1, y2 = 1;` ` ` ` ` `findPoint(x1, y1, x2, y2);` ` ` `}` `}` `// This code is contributed by Arnab Kundu.` |

## PHP

`<?php` `// PHP Program for find the 180` `// degree reflection of one point` `// around another point.` `function` `findPoint(` `$x1` `, ` `$y1` `, ` `$x2` `, ` `$y2` `)` `{` ` ` `echo` `"("` `, 2 * ` `$x2` `- ` `$x1` `, ` `", "` ` ` `, 2 * ` `$y2` `- ` `$y1` `,` `")"` `;` `}` ` ` `// Driver Code` ` ` `$x1` `= 0;` ` ` `$y1` `= 0;` ` ` `$x2` `= 1;` ` ` `$y2` `= 1;` ` ` `findPoint(` `$x1` `, ` `$y1` `, ` `$x2` `, ` `$y2` `);` `// This code is contributed by anuj_67` `?>` |

## Javascript

`<script>` `// Javascript Program to find the 180 degree reflection` `// of one point around another point.` `function` `findPoint(x1, y1, x2, y2)` `{` ` ` `document.write(` `"("` `+ 2 * (x2 - x1) + ` `", "` ` ` `+ 2 * (y2 - y1) + ` `")"` `);` `}` ` ` `let x1 = 0, y1 = 0, x2 = 1, y2 = 1;` ` ` `findPoint(x1, y1, x2, y2);` `// This code is contributed by Mayank Tyagi` `</script>` |

**Output:**

(2, 2)

**Time Complexity : **O(1)