Reflection of a point at 180 degree rotation of another point
Last Updated :
09 Feb, 2023
Given two points coordinates (x1, y1) and (x2, y2)on 2D plane. The task is to find the reflection of (x1, y1) at 180 degree rotation of (x2, y2).
Examples:
Input : x1 = 0, y1 = 0, x2 = 1, y2 = 1
Output : (2, 2)
Input : x1 = 1, y1 = 1, x2 = 2, y2 = 2
Output : (3, 3)
Let the reflection point of point (x1, y1) about (x2, y2) be (x’, y’).
For (x’, y’) be the 180 degree rotation of point (x1, y1) around point (x2, y2), they all must be collinear i.e all the three point must lie on a same straight line. Also, observe (x2, y2) will became mid point between (x1, y1) and (x’, y’).
So,
x’ – x2 = x2 – x1
y’ – y2 = y2 – y1
x’ = 2 * x2 – x1
y’ = 2 * y2 – y1
Below is the implementation of this approach:
C++
#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
class GFG {
static void findPoint( int x1, int y1,
int x2, int y2)
{
System.out.println( "(" + ( int )( 2 * x2 - x1)
+ "," + ( int )( 2 * y2 - y1 ) + " )" );
}
public static void main(String args[])
{
int x1 = 0 , y1 = 0 , x2 = 1 , y2 = 1 ;
findPoint(x1, y1, x2, y2);
}
}
|
Python3
def findPoint(x1, y1, x2, y2):
print ( "(" , 2 * x2 - x1 , "," ,
2 * y2 - y1 , ")" );
x1 = 0 ;
y1 = 0 ;
x2 = 1 ;
y2 = 1 ;
findPoint(x1, y1, x2, y2);
|
C#
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 ) + " )" );
}
static public void Main(String []args)
{
int x1 = 0, y1 = 0, x2 = 1, y2 = 1;
findPoint(x1, y1, x2, y2);
}
}
|
PHP
<?php
function findPoint( $x1 , $y1 , $x2 , $y2 )
{
echo "(" , 2 * $x2 - $x1 , ", "
, 2 * $y2 - $y1 , ")" ;
}
$x1 = 0;
$y1 = 0;
$x2 = 1;
$y2 = 1;
findPoint( $x1 , $y1 , $x2 , $y2 );
?>
|
Javascript
<script>
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);
</script>
|
Time Complexity : O(1)
Space Complexity : O(1) since using constant variables
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...