Skip to content
Related Articles
Check whether a point lies inside a sphere or not
• Difficulty Level : Basic
• Last Updated : 24 Mar, 2021

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)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer DSA Live Classes

My Personal Notes arrow_drop_up