# Check whether a point lies inside a sphere or not

Given co-ordinates of the center of a sphere (cx, cy, cz) and its radius r. Our task is to check whether a point (x, y, z) lies inside, outside or on this sphere.

Examples:

```Input : Centre(0, 0, 0) Radius 3
Point(1, 1, 1)
Output :Point is inside the sphere

Input :Centre(0, 0, 0) Radius 3
Point(2, 1, 2)
Output :Point lies on the sphere

Input :Centre(0, 0, 0) Radius 3
Point(10, 10, 10)
Output :Point is outside the sphere
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:
Whether a point lies inside a sphere or not, depends upon its distance from the centre.
A point (x, y, z) is inside the sphere with center (cx, cy, cz) and radius r if

`( x-cx ) ^2 + (y-cy) ^2 + (z-cz) ^ 2 < r^2 `

A point (x, y, z) lies on the sphere with center (cx, cy, cz) and radius r if

`( x-cx ) ^2 + (y-cy) ^2 + (z-cz) ^ 2 = r^2 `

A point (x, y, z) is outside the sphere with center (cx, cy, cz) and radius r if

`( x-cx ) ^2 + (y-cy) ^2 + (z-cz) ^ 2 > r^2 `

## C++

 `// CPP code to illustrate above approach ` `#include ` `using` `namespace` `std; ` `// function to calculate the distance between centre and the point ` `int` `check(``int` `cx, ``int` `cy, ``int` `cz, ``int` `x, ``int` `y, ``int` `z) ` `{ ` `    ``int` `x1 = ``pow``((x - cx), 2); ` `    ``int` `y1 = ``pow``((y - cy), 2); ` `    ``int` `z1 = ``pow``((z - cz), 2); ` ` `  `    ``// distance between the centre  ` `    ``// and given point ` `    ``return` `(x1 + y1 + z1);  ` `} ` ` `  `// Driver program to test above function ` `int` `main() ` `{ ` `    ``// coordinates of centre ` `    ``int` `cx = 1, cy = 2, cz = 3;  ` ` `  `    ``int` `r = 5; ``// radius of the sphere ` `    ``int` `x = 4, y = 5, z = 2; ``// coordinates of point ` ` `  `    ``int` `ans = check(cx, cy, cz, x, y, z); ` ` `  `    ``// distance btw centre and point is less  ` `    ``// than radius ` `    ``if` `(ans < (r * r)) ` `        ``cout << ``"Point is inside the sphere"``;  ` ` `  `    ``// distance btw centre and point is  ` `    ``// equal to radius ` `    ``else` `if` `(ans == (r * r)) ` `        ``cout << ``"Point lies on the sphere"``;  ` ` `  `    ``// distance btw center and point is ` `    ``// greater than radius ` `    ``else` `        ``cout << ``"Point is outside the sphere"``; ` `    ``return` `0; ` `}`

## Java

 `// Java code to illustrate above approach ` `import` `java.io.*; ` `import` `java.util.*; ` `import` `java.lang.*; ` ` `  `class` `GfG { ` `     `  `    ``// function to calculate the distance  ` `    ``// between centre and the point ` `    ``public` `static` `int` `check(``int` `cx, ``int` `cy, ` `                 ``int` `cz, ``int` `x, ``int` `y, ``int` `z) ` `    ``{ ` `        ``int` `x1 = (``int``)Math.pow((x - cx), ``2``); ` `        ``int` `y1 = (``int``)Math.pow((y - cy), ``2``); ` `        ``int` `z1 = (``int``)Math.pow((z - cz), ``2``); ` `     `  `        ``// distance between the centre  ` `        ``// and given point ` `        ``return` `(x1 + y1 + z1);  ` `    ``} ` `     `  `    ``// Driver program to test above function ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``// coordinates of centre ` `        ``int` `cx = ``1``, cy = ``2``, cz = ``3``;  ` `     `  `        ``int` `r = ``5``; ``// radius of the sphere ` `         `  `        ``// coordinates of point ` `        ``int` `x = ``4``, y = ``5``, z = ``2``;  ` `     `  `        ``int` `ans = check(cx, cy, cz, x, y, z); ` `     `  `        ``// distance btw centre and point is less  ` `        ``// than radius ` `        ``if` `(ans < (r * r)) ` `            ``System.out.println(``"Point is inside"` `                       ``+ ``" the sphere"``);  ` `     `  `        ``// distance btw centre and point is  ` `        ``// equal to radius ` `        ``else` `if` `(ans == (r * r)) ` `            ``System.out.println(``"Point lies on"` `                        ``+ ``" the sphere"``);  ` `     `  `        ``// distance btw center and point is ` `        ``// greater than radius ` `        ``else` `            ``System.out.println(``"Point is outside"` `                             ``+ ``" the sphere"``); ` `    ``} ` `} ` ` `  `// This code is contributed by Sagar Shukla. `

## Python

 `# Python3 code to illustrate above approach ` ` `  `import` `math ` `# function to calculate distance btw center and given point ` `def` `check(cx, cy, cz, x, y, z, ): ` `     `  `    ``x1 ``=` `math.``pow``((x``-``cx), ``2``) ` `    ``y1 ``=` `math.``pow``((y``-``cy), ``2``) ` `    ``z1 ``=` `math.``pow``((z``-``cz), ``2``) ` `    ``return` `(x1 ``+` `y1 ``+` `z1) ``# distance between the centre and given point ` `     `  `# driver code     ` `cx ``=` `1` `cy ``=` `2` `# coordinates of centre ` `cz ``=` `3` ` `  `r ``=` `5` `# radius of sphere ` ` `  `x ``=` `4` `y ``=` `5` `# coordinates of the given point ` `z ``=` `2` `# function call to calculate distance btw centre and given point ` `ans ``=` `check(cx, cy, cz, x, y, z); ` ` `  `# distance btw centre and point is less than radius ` `if` `ans<(r``*``*``2``): ` `    ``print``(``"Point is inside the sphere"``)  ` ` `  `# distance btw centre and point is equal to radius ` `elif` `ans ``=``=``(r``*``*``2``): ` `    ``print``(``"Point lies on the sphere"``)  ` ` `  `# distance btw centre and point is greater than radius ` `else``: ` `    ``print``(``"Point is outside the sphere"``)  `

## C#

 `// C# code to illustrate ` `// above approach ` `using` `System; ` ` `  `class` `GFG  ` `{ ` `     `  `    ``// function to calculate  ` `    ``// the distance between  ` `    ``// centre and the point ` `    ``public` `static` `int` `check(``int` `cx, ``int` `cy, ` `                            ``int` `cz, ``int` `x,  ` `                            ``int` `y, ``int` `z) ` `    ``{ ` `        ``int` `x1 = (``int``)Math.Pow((x - cx), 2); ` `        ``int` `y1 = (``int``)Math.Pow((y - cy), 2); ` `        ``int` `z1 = (``int``)Math.Pow((z - cz), 2); ` `     `  `        ``// distance between the ` `        ``// centre and given point ` `        ``return` `(x1 + y1 + z1);  ` `    ``} ` `     `  `    ``// Driver Code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// coordinates of centre ` `        ``int` `cx = 1, cy = 2, cz = 3;  ` `     `  `        ``int` `r = 5; ``// radius of the sphere ` `         `  `        ``// coordinates of point ` `        ``int` `x = 4, y = 5, z = 2;  ` `     `  `        ``int` `ans = check(cx, cy, cz, ` `                        ``x, y, z); ` `     `  `        ``// distance btw centre ` `        ``// and point is less  ` `        ``// than radius ` `        ``if` `(ans < (r * r)) ` `            ``Console.WriteLine(``"Point is inside"` `+ ` `                                  ``" the sphere"``);  ` `     `  `        ``// distance btw centre ` `        ``// and point is  ` `        ``// equal to radius ` `        ``else` `if` `(ans == (r * r)) ` `            ``Console.WriteLine(``"Point lies on"` `+  ` `                                ``" the sphere"``);  ` `     `  `        ``// distance btw center  ` `        ``// and point is greater ` `        ``// than radius ` `        ``else` `            ``Console.WriteLine(``"Point is outside"` `+  ` `                                   ``" the sphere"``); ` `    ``} ` `} ` ` `  `// This code is contributed by anuj_67. `

## PHP

 ` `

Output:

`Point is inside the sphere`

Time Complexity:O(1)

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.