# Check whether a given point lies inside a rectangle or not

• Difficulty Level : Easy
• Last Updated : 13 Jun, 2022

Given four points of a rectangle, and one more point P. Write a function to check whether P lies within the given rectangle or not.
Examples:

```Input : R = [(10, 10), (10, -10),
(-10, -10), (-10, 10)]
P = (0, 0)
Output : yes
Illustration : ``` ```Input : R = [(10, 10), (10, -10),
(-10, -10), (-10, 10)],
P = (20, 20)
Output : no
Illustration :
``` ` `

Prerequisite: Check whether a given point lies inside a triangle or not
Approach : Let the coordinates of four corners be A(x1, y1), B(x2, y2), C(x3, y3) and D(x4, y4). And coordinates of the given point P be (x, y)
1) Calculate area of the given rectangle, i.e., area of the rectangle ABCD as area of triangle ABC + area of triangle ACD.
Area A = [ x1(y2 – y3) + x2(y3 – y1) + x3(y1-y2)]/2 + [ x1(y4 – y3) + x4(y3 – y1) + x3(y1-y4)]/2
2) Calculate area of the triangle PAB as A1.
3) Calculate area of the triangle PBC as A2.
4) Calculate area of the triangle PCD as A3.
5) Calculate area of the triangle PAD as A4.
6) If P lies inside the triangle, then A1 + A2 + A3 + A4 must be equal to A.

## C++

 `#include ``using` `namespace` `std;` `/* A utility function to calculate area of``   ``triangle formed by (x1, y1), (x2, y2) and``  ``(x3, y3) */``float` `area(``int` `x1, ``int` `y1, ``int` `x2, ``int` `y2,``                            ``int` `x3, ``int` `y3)``{``    ``return` `abs``((x1 * (y2 - y3) + x2 * (y3 - y1) +``                ``x3 * (y1 - y2)) / 2.0);``}` `/* A function to check whether point P(x, y)``   ``lies inside the rectangle formed by A(x1, y1),``   ``B(x2, y2), C(x3, y3) and D(x4, y4) */``bool` `check(``int` `x1, ``int` `y1, ``int` `x2, ``int` `y2, ``int` `x3,``             ``int` `y3, ``int` `x4, ``int` `y4, ``int` `x, ``int` `y)``{``    ``/* Calculate area of rectangle ABCD */``    ``float` `A = area(x1, y1, x2, y2, x3, y3) +``              ``area(x1, y1, x4, y4, x3, y3);` `    ``/* Calculate area of triangle PAB */``    ``float` `A1 = area(x, y, x1, y1, x2, y2);` `    ``/* Calculate area of triangle PBC */``    ``float` `A2 = area(x, y, x2, y2, x3, y3);` `    ``/* Calculate area of triangle PCD */``    ``float` `A3 = area(x, y, x3, y3, x4, y4);` `    ``/* Calculate area of triangle PAD */``    ``float` `A4 = area(x, y, x1, y1, x4, y4);` `    ``/* Check if sum of A1, A2, A3 and A4``       ``is same as A */``    ``return` `(A == A1 + A2 + A3 + A4);``}` `/* Driver program to test above function */``int` `main()``{``    ``/* Let us check whether the point P(10, 15)``      ``lies inside the rectangle formed by A(0, 10),``      ``B(10, 0) C(0, -10) D(-10, 0) */``    ``if` `(check(0, 10, 10, 0, 0, -10, -10, 0, 10, 15))``        ``cout << ``"yes"``;``    ``else``        ``cout << ``"no"``;``    ``return` `0;``}`

## Java

 `class` `GFG``{``    ``/* A utility function to calculate area of``    ``triangle formed by (x1, y1), (x2, y2) and``    ``(x3, y3) */``    ``static` `float` `area(``int` `x1, ``int` `y1, ``int` `x2,``                        ``int` `y2, ``int` `x3, ``int` `y3)``    ``{``        ``return` `(``float``)Math.abs((x1 * (y2 - y3) +``        ``x2 * (y3 - y1) + x3 * (y1 - y2)) / ``2.0``);``    ``}``        ` `    ``/* A function to check whether point P(x, y)``    ``lies inside the rectangle formed by A(x1, y1),``    ``B(x2, y2), C(x3, y3) and D(x4, y4) */``    ``static` `boolean` `check(``int` `x1, ``int` `y1, ``int` `x2, ``int` `y2,``    ``int` `x3, ``int` `y3, ``int` `x4, ``int` `y4, ``int` `x, ``int` `y)``    ``{``        ` `        ``/* Calculate area of rectangle ABCD */``        ``float` `A = area(x1, y1, x2, y2, x3, y3)+``                ``area(x1, y1, x4, y4, x3, y3);``    ` `        ``/* Calculate area of triangle PAB */``        ``float` `A1 = area(x, y, x1, y1, x2, y2);``    ` `        ``/* Calculate area of triangle PBC */``        ``float` `A2 = area(x, y, x2, y2, x3, y3);``    ` `        ``/* Calculate area of triangle PCD */``        ``float` `A3 = area(x, y, x3, y3, x4, y4);``    ` `        ``/* Calculate area of triangle PAD */``        ``float` `A4 = area(x, y, x1, y1, x4, y4);``    ` `        ``/* Check if sum of A1, A2, A3 and A4``        ``is same as A */``        ``return` `(A == A1 + A2 + A3 + A4);``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ` `        ``/* Let us check whether the point P(10, 15)``        ``lies inside the rectangle formed by A(0, 10),``        ``B(10, 0) C(0, -10) D(-10, 0) */``        ``if` `(check(``0``, ``10``, ``10``, ``0``, ``0``, -``10``, -``10``, ``0``, ``10``, ``15``))``            ``System.out.print(``"yes"``);``        ``else``            ``System.out.print(``"no"``);``    ``}``}` `// This code is contributed by Anant Agarwal.`

## Python3

 `# A utility function to calculate``# area of triangle formed by (x1, y1),``# (x2, y2) and (x3, y3)``def` `area(x1, y1, x2, y2, x3, y3):``    ` `    ``return` `abs``((x1 ``*` `(y2 ``-` `y3) ``+``                ``x2 ``*` `(y3 ``-` `y1) ``+``                ``x3 ``*` `(y1 ``-` `y2)) ``/` `2.0``)` `# A function to check whether point``# P(x, y) lies inside the rectangle``# formed by A(x1, y1), B(x2, y2),``# C(x3, y3) and D(x4, y4)``def` `check(x1, y1, x2, y2, x3,``          ``y3, x4, y4, x, y):``              ` `    ``# Calculate area of rectangle ABCD``    ``A ``=` `(area(x1, y1, x2, y2, x3, y3) ``+``         ``area(x1, y1, x4, y4, x3, y3))` `    ``# Calculate area of triangle PAB``    ``A1 ``=` `area(x, y, x1, y1, x2, y2)` `    ``# Calculate area of triangle PBC``    ``A2 ``=` `area(x, y, x2, y2, x3, y3)` `    ``# Calculate area of triangle PCD``    ``A3 ``=` `area(x, y, x3, y3, x4, y4)` `    ``# Calculate area of triangle PAD``    ``A4 ``=` `area(x, y, x1, y1, x4, y4);` `    ``# Check if sum of A1, A2, A3``    ``# and A4 is same as A``    ``return` `(A ``=``=` `A1 ``+` `A2 ``+` `A3 ``+` `A4)` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ` `    ``# Let us check whether the point``    ``# P(10, 15) lies inside the``    ``# rectangle formed by A(0, 10),``    ``# B(10, 0) C(0, -10) D(-10, 0)``    ``if` `(check(``0``, ``10``, ``10``, ``0``, ``0``, ``-``10``,``                    ``-``10``, ``0``, ``10``, ``15``)):``        ``print``(``"yes"``)``    ``else``:``        ``print``(``"no"``)` `# This code is contributed by``# Surendra_Gangwar`

## C#

 `// C# program to Check whether a given``// point lies inside a rectangle or not``using` `System;` `class` `GFG {``    ` `    ``// A utility function to calculate area``    ``// of triangle formed by (x1, y1),``    ``// (x2, y2) and (x3, y3)``    ``static` `float` `area(``int` `x1, ``int` `y1, ``int` `x2,``                      ``int` `y2, ``int` `x3, ``int` `y3)``    ``{``        ``return` `(``float``)Math.Abs((x1 * (y2 - y3) +``                                ``x2 * (y3 - y1) +``                                ``x3 * (y1 - y2)) / 2.0);``    ``}``        ` `    ``// A function to check whether point P(x, y)``    ``// lies inside the rectangle formed by A(x1, y1),``    ``// B(x2, y2), C(x3, y3) and D(x4, y4)``    ``static` `bool` `check(``int` `x1, ``int` `y1, ``int` `x2,``                      ``int` `y2, ``int` `x3, ``int` `y3,``                   ``int` `x4, ``int` `y4, ``int` `x, ``int` `y)``    ``{``        ` `        ``// Calculate area of rectangle ABCD``        ``float` `A = area(x1, y1, x2, y2, x3, y3) +``                  ``area(x1, y1, x4, y4, x3, y3);``    ` `        ``// Calculate area of triangle PAB``        ``float` `A1 = area(x, y, x1, y1, x2, y2);``    ` `        ``// Calculate area of triangle PBC``        ``float` `A2 = area(x, y, x2, y2, x3, y3);``    ` `        ``// Calculate area of triangle PCD``        ``float` `A3 = area(x, y, x3, y3, x4, y4);``    ` `        ``// Calculate area of triangle PAD``        ``float` `A4 = area(x, y, x1, y1, x4, y4);``    ` `        ``// Check if sum of A1, A2, A3 ``        ``// and A4is same as A``        ``return` `(A == A1 + A2 + A3 + A4);``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ` `        ``// Let us check whether the point``        ``// P(10, 15) lies inside the rectangle``        ``// formed by A(0, 10), B(10, 0),``        ``// C(0, -10), D(-10, 0)``        ``if` `(check(0, 10, 10, 0, 0, -10, -10, 0, 10, 15))``            ``Console.Write(``"yes"``);``        ``else``            ``Console.Write(``"no"``);``    ``}``}` `// This code is contributed by Nitin Mittal.`

## PHP

 ``

## Javascript

 ``

Output:

`no`

Time complexity: O(1)

Auxiliary Space: O(1)