# Check whether a point exists in circle sector or not.

Last Updated : 22 Jun, 2022

We have a circle centered at origin (0, 0). As input we are given with starting angle of the circle sector and the size of the circle sector in percentage.

Examples:

```Input :  Radius = 8
StartAngle = 0
Percentage = 12
x = 3 y = 4
Output : Point (3, 4) exists in the circle
sector

Input : Radius = 12
Startangle = 45
Percentage = 25
x = 3 y = 4
Output : Point (3, 4) does not exist in
the circle sector```

Source:wikibooks.org

In this image starting angle is 0 degree, radius r and suppose that percentage of colored area is 12% then we calculate Ending Angle as 360/percentage + starting angle.

To find whether a point (x, y) exists in a circle sector (centered at origin) or not we find polar coordinates of that point and then go through the following steps:

1. Convert x, y to polar coordinates using this
Angle = atan(y/x); Radius = sqrt(x * x + y * y);
2. Then Angle must be between StartingAngle and EndingAngle, and Radius between 0 and your Radius.

## C++

 `// C++ program to check if a point lies inside a circle` `// sector.` `#include` `using` `namespace` `std;`   `void` `checkPoint(``int` `radius, ``int` `x, ``int` `y, ``float` `percent,` `                                         ``float` `startAngle)` `{` `    ``// calculate endAngle` `    ``float` `endAngle = 360/percent + startAngle;`   `    ``// Calculate polar co-ordinates` `    ``float` `polarradius = ``sqrt``(x*x+y*y);` `    ``float` `Angle = ``atan``(y/x);`   `    ``// Check whether polarradius is less then radius of circle` `    ``// or not and Angle is between startAngle and endAngle` `    ``// or not` `    ``if` `(Angle>=startAngle && Angle<=endAngle && polarradius

## Java

 `// Java program to check if` `// a point lies inside a circle` `// sector.`   `class` `GFG` `{` `static` `void` `checkPoint(``int` `radius, ``int` `x, ``int` `y, ``float` `percent,` `                                         ``float` `startAngle)` `{`   `    ``// calculate endAngle` `    ``float` `endAngle = ``360``/percent + startAngle;` ` `  `    ``// Calculate polar co-ordinates` `    ``double` `polarradius = Math.sqrt(x*x+y*y);` `    ``double` `Angle = Math.atan(y/x);` ` `  `    ``// Check whether polarradius is` `    ``// less then radius of circle` `    ``// or not and Angle is between` `    ``// startAngle and endAngle` `    ``// or not` `    ``if` `(Angle>=startAngle && Angle<=endAngle && polarradius

## Python3

 `# Python3 program to check if a point ` `# lies inside a circle sector.` `import` `math`   `def` `checkPoint(radius, x, y, percent, startAngle):`   `    ``# calculate endAngle` `    ``endAngle ``=` `360` `/` `percent ``+` `startAngle`   `    ``# Calculate polar co-ordinates` `    ``polarradius ``=` `math.sqrt(x ``*` `x ``+` `y ``*` `y)` `    ``Angle ``=` `math.atan(y ``/` `x)`   `    ``# Check whether polarradius is less` `    ``# then radius of circle or not and ` `    ``# Angle is between startAngle and ` `    ``# endAngle or not` `    ``if` `(Angle >``=` `startAngle ``and` `Angle <``=` `endAngle` `                        ``and` `polarradius < radius):` `        ``print``(``"Point ("``, x, ``","``, y, ``") "` `              ``"exist in the circle sector"``)` `    ``else``:` `        ``print``(``"Point ("``, x, ``","``, y, ``") "` `              ``"does not exist in the circle sector"``)`   `# Driver code` `radius, x, y ``=` `8``, ``3``, ``4` `percent, startAngle ``=` `12``, ``0`   `checkPoint(radius, x, y, percent, startAngle)`   `# This code is contributed by` `# Smitha Dinesh Semwal`

## C#

 `// C# program to check if a point lies` `// inside a circle sector.` `using` `System.IO;` `using` `System;`   `class` `GFG {` `    `  `    ``static` `void` `checkPoint(``int` `radius, ``int` `x, ``int` `y,` `                    ``float` `percent, ``float` `startAngle)` `    ``{` `        `  `        ``// calculate endAngle` `        ``float` `endAngle = 360 / percent + startAngle;` `    `  `        ``// Calculate polar co-ordinates` `        ``float` `polarradius = ` `                    ``(``float``)Math.Sqrt(x * x + y * y);` `                    `  `        ``float` `Angle = (``float``)Math.Atan(y / x);` `    `  `        ``// Check whether polarradius is less then ` `        ``// radius of circle or not and Angle is ` `        ``// between startAngle and endAngle or not` `        ``if` `(Angle >= startAngle && Angle <= endAngle` `                            ``&& polarradius < radius)` `            ``Console.Write(``"Point ({0}, {1}) exist in "` `                         ``+ ``"the circle sector"``, x, y);` `        ``else` `            ``Console.Write(``"Point ({0}, {1}) does not "` `                ``+ ``"exist in the circle sector"``, x, y);` `    ``}` `    `  `    ``// Driver code` `    ``public` `static` `void` `Main()` `    ``{` `        ``int` `radius = 8, x = 3, y = 4;` `        ``float` `percent = 12, startAngle = 0;` `        ``checkPoint(radius, x, y, percent, startAngle);` `    ``}` `}`   `// This code is contributed by Smitha Dinesh Semwal`

## Javascript

 ``

Output :

`Point(3, 4) exists in the circle sector`

Time complexity:  O(1)
Auxiliary Space: O(1)

Previous
Next