Check whether a given point lies on or inside the rectangle | Set 3
Last Updated :
31 Aug, 2022
Given two numbers a and b where b < a form a rectangle with points (0, b), (b, 0), (a-b, b), (b, a-b). Given a point (x, y), the task is to check whether this point lies inside or on the rectangle or not.
Examples:
Input: a = 7, b = 2, x = 5, y = 2;
Output: Given point does not lie on the rectangle
Input: a = 7, b = 2, x = 4, y = 5;
Output: Given point lies inside the rectangle
Approach: An efficient way is to form 4 line’s equation of a rectangle. Then, if a given point lies in or on the rectangle if and only if, substituting the given point on:
- The right sideline ( x-y-b = 0 ) must give the value less than or equals to zero.
- The left sideline ( x-y+a = 0 ) must give the value greater than or equals to one.
- The upper sideline ( x+y-2*a+b = 0 ) must give the value less than or equals to zero.
- The lower sideline ( x+y-b = 0 ) must give the value greater than or equals to one.
C++
#include <bits/stdc++.h>
using namespace std;
bool LiesInsieRectangle( int a, int b, int x, int y)
{
if (x - y - b <= 0 && x - y + b >= 0
&& x + y - 2 * a + b <= 0 && x + y - b >= 0)
return true ;
return false ;
}
int main()
{
int a = 7, b = 2, x = 4, y = 5;
if (LiesInsieRectangle(a, b, x, y))
cout << "Given point lies inside the rectangle" ;
else
cout << "Given point does not lie on the rectangle" ;
return 0;
}
|
C
#include <stdio.h>
#include <stdbool.h>
bool LiesInsieRectangle( int a, int b, int x, int y)
{
if (x - y - b <= 0 && x - y + b >= 0
&& x + y - 2 * a + b <= 0 && x + y - b >= 0)
return true ;
return false ;
}
int main()
{
int a = 7, b = 2, x = 4, y = 5;
if (LiesInsieRectangle(a, b, x, y))
printf ( "Given point lies inside the rectangle" );
else
printf ( "Given point does not lie on the rectangle" );
return 0;
}
|
Java
class GFG
{
static boolean LiesInsieRectangle( int a, int b,
int x, int y)
{
if (x - y - b <= 0 && x - y + b >= 0 &&
x + y - 2 * a + b <= 0 && x + y - b >= 0 )
return true ;
return false ;
}
public static void main(String[] args)
{
int a = 7 , b = 2 , x = 4 , y = 5 ;
if (LiesInsieRectangle(a, b, x, y))
System.out.println( "Given point lies " +
"inside the rectangle" );
else
System.out.println( "Given point does not " +
"lie on the rectangle" );
}
}
|
Python3
def LiesInsieRectangle(a, b, x, y) :
if (x - y - b < = 0 and
x - y + b > = 0 and
x + y - 2 * a + b < = 0 and
x + y - b > = 0 ) :
return True
return False
if __name__ = = "__main__" :
a, b, x, y = 7 , 2 , 4 , 5
if LiesInsieRectangle(a, b, x, y) :
print ( "Given point lies inside"
" the rectangle" )
else :
print ( "Given point does not lie"
" on the rectangle" )
|
C#
using System;
class GFG
{
static bool LiesInsieRectangle( int a, int b,
int x, int y)
{
if (x - y - b <= 0 &&
x - y + b >= 0 &&
x + y - 2 * a + b <= 0 &&
x + y - b >= 0)
return true ;
return false ;
}
public static void Main()
{
int a = 7, b = 2, x = 4, y = 5;
if (LiesInsieRectangle(a, b, x, y))
Console.Write( "Given point lies " +
"inside the rectangle" );
else
Console.Write( "Given point does not " +
"lie on the rectangle" );
}
}
|
PHP
<?php
function LiesInsieRectangle( $a , $b ,
$x , $y )
{
if ( $x - $y - $b <= 0 &&
$x - $y + $b >= 0 &&
$x + $y - 2 * $a + $b <= 0 &&
$x + $y - $b >= 0)
return true;
return false;
}
$a = 7;
$b = 2;
$x = 4;
$y = 5;
if (LiesInsieRectangle( $a , $b ,
$x , $y ))
echo "Given point lies " .
"inside the rectangle" ;
else
echo "Given point does not" .
" lie on the rectangle" ;
?>
|
Javascript
<script>
function LiesInsieRectangle(a, b, x, y)
{
if (x - y - b <= 0 && x - y + b >= 0
&& x + y - 2 * a + b <= 0 && x + y - b >= 0)
return true ;
return false ;
}
let a = 7, b = 2, x = 4, y = 5;
if (LiesInsieRectangle(a, b, x, y))
document.write( "Given point lies inside the rectangle" );
else
document.write( "Given point does not lie on the rectangle" );
</script>
|
Output:
Given point lies inside the rectangle
Time Complexity: O(1), since there is no loop or recursion.
Auxiliary Space: O(1), since no extra space has been taken.
Share your thoughts in the comments
Please Login to comment...