 GFG App
Open App Browser
Continue

# Distance between centers of two intersecting circles if the radii and common chord length is given

Given are two circles, with given radii, which intersect each other and have a common chord. The length of the common chord is given. The task is to find the distance between the center of the two circles. Examples:

```Input:  r1 = 24, r2 = 37, x = 40
Output: 44

Input: r1 = 14, r2 = 7, x = 10
Output: 17```
• let the length of common chord AB = x
• Let the radius of the circle with center O is OA = r2
• Radius of circle with center P is AP = r1
• From the figure, OP is perpendicular AB AC = CB AC = x/2 (Since AB = x)
• In triangle ACP, AP^2 = PC^2+ AC^2 [By Pythagoras theorem] r1^2 = PC^2 + (x/2)^2 PC^2 = r1^2 – x^2/4
• Consider triangle ACO r2^2 = OC^2+ AC^2[By Pythagoras theorem] r2^2 = OC^2+ (x/2)^2 OC^2 = r2^2 – x^2/4
• From the figure, OP = OC + PC OP = √( r1^2 – x^2/4 ) + √(r2^2 – x^2/4)

Distance between the centers = sqrt((radius of one circle)^2 – (half of the length of the common chord )^2) + sqrt((radius of the second circle)^2 – (half of the length of the common chord )^2)

Below is the implementation of the above approach:

## C++

 `// C++ program to find` `// the distance between centers` `// of two intersecting circles` `// if the radii and common chord length is given` `  `  `#include ` `using` `namespace` `std;` `  `  `void` `distcenter(``int` `r1, ``int` `r2, ``int` `x)` `{` `    ``int` `z = ``sqrt``((r1 * r1)` `                 ``- (x / 2 * x / 2))` `            ``+ ``sqrt``((r2 * r2)` `                   ``- (x / 2 * x / 2));` `  `  `    ``cout << ``"distance between the"` `         ``<< ``" centers is "` `         ``<< z << endl;` `}` `  `  `// Driver code` `int` `main()` `{` `    ``int` `r1 = 24, r2 = 37, x = 40;` `    ``distcenter(r1, r2, x);` `    ``return` `0;` `}`

## Java

 `// Java program to find` `// the distance between centers` `// of two intersecting circles` `// if the radii and common chord length is given` `import` `java.lang.Math; ` `import` `java.io.*;` `  `  `class` `GFG {` `      `  `static` `double` `distcenter(``int` `r1, ``int` `r2, ``int` `x)` `{` `    ``double` `z = (Math.sqrt((r1 * r1)` `                ``- (x / ``2` `* x / ``2``)))` `            ``+ (Math.sqrt((r2 * r2)` `                ``- (x / ``2` `* x / ``2``)));` `  `  `    ``System.out.println (``"distance between the"` `+` `                        ``" centers is "``+ (``int``)z );` `    ``return` `0``;` `}` `  `  `// Driver code` `public` `static` `void` `main (String[] args) ` `{` `    ``int` `r1 = ``24``, r2 = ``37``, x = ``40``;` `    ``distcenter(r1, r2, x);` `}` `}` `  `  `// This code is contributed by jit_t.`

## Python3

 `# Python program to find` `# the distance between centers` `# of two intersecting circles` `# if the radii and common chord length is given` `  `  `def` `distcenter(r1, r2, x):` `    ``z ``=` `(((r1 ``*` `r1) ``-` `(x ``/` `2` `*` `x ``/` `2``))``*``*``(``1``/``2``)) ``+``\` `    ``(((r2 ``*` `r2)``-` `(x ``/` `2` `*` `x ``/` `2``))``*``*``(``1``/``2``));` `  `  `    ``print``(``"distance between thecenters is "``,end``=``"");` `    ``print``(``int``(z));` `  `  `# Driver code` `r1 ``=` `24``; r2 ``=` `37``; x ``=` `40``;` `distcenter(r1, r2, x);` `  `  `# This code has been contributed by 29AjayKumar`

## C#

 `// C# program to find` `// the distance between centers` `// of two intersecting circles` `// if the radii and common chord length is given` `using` `System;` `  `  `class` `GFG` `{` `          `  `static` `double` `distcenter(``int` `r1, ``int` `r2, ``int` `x)` `{` `    ``double` `z = (Math.Sqrt((r1 * r1)` `                ``- (x / 2 * x / 2)))` `            ``+ (Math.Sqrt((r2 * r2)` `                ``- (x / 2 * x / 2)));` `  `  `    ``Console.WriteLine(``"distance between the"` `+` `                        ``" centers is "``+ (``int``)z );` `    ``return` `0;` `}` `  `  `// Driver code` `static` `public` `void` `Main ()` `{` `    ``int` `r1 = 24, r2 = 37, x = 40;` `    ``distcenter(r1, r2, x);` `}` `}` `  `  `// This code is contributed by jit_t`

## PHP

 ``

## Javascript

 ``

Output :

distance between the centers is 44

Time Complexity : O(log(n)) ,because using inbuilt sqrt function

Space Complexity : O(1) ,as no extra space used.

My Personal Notes arrow_drop_up