 GeeksforGeeks App
Open App Browser
Continue

# 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```

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

 ``

## Javascript

 ``

Output:

`Point is inside the sphere`

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

My Personal Notes arrow_drop_up