# 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; ` `} ` |

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

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

*chevron_right*

*filter_none*

**Output:**

(2, 2)

**Time Complexity : **O(1)

## Recommended Posts:

- Reflection of a point about a line in C++
- Rotation of a point about another point in C++
- Find the other end point of a line with given one end and mid
- Distance between a point and a Plane in 3 D
- Mirror of a point through a 3 D plane
- First collision point of two series
- Triangle with no point inside
- Program to find the Break Even Point
- Bitonic point in the given linked list
- Direction of a Point from a Line Segment
- Finding the best fit rectangle that covers a given point
- Check whether the point (x, y) lies on a given line
- Check whether given floating point number is even or odd
- Shortest distance between a point and a circle
- Program to find the mid-point of a line

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 Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.