Given two circles, of given radii, have there centres a given distance apart, such that the circles don’t touch each other. The task is to find the length of the direct common tangent between the circles.

**Examples:**

Input:r1 = 4, r2 = 6, d = 12Output:11.8322Input:r1 = 5, r2 = 9, d = 25Output:24.6779

**Approach**:

- Let the radii of the circles be
**r1**&**r2**respectively. - Let the distance between the centers be
**d**units. - Draw a line
**OR**parallel to**PQ** **angle OPQ = 90 deg**

angle O’QP = 90 deg

{ line joining the centre of the circle to the point of contact makes an angle of 90 degrees with the tangent }**angle OPQ + angle O’QP = 180 deg**

OP || QR- Since opposite sides are parallel and interior angles are 90, therefore
**OPQR**is a rectangle. - So
**OP = QR = r1**and**PQ = OR = d** - In triangle
**OO’R****angle ORO’ = 90**

By**Pythagoras theorem**

**OR^2 + O’R^2 = (OO’^2)**

OR^2 + (r1-r2)^2 = d^2 - so,
**OR^2= d^2-(r1-r2)^2**

OR = √{d^2-(r1-r2)^2}

Below is the implementation of the above approach:

## C++

`// C++ program to find ` `// the length of the direct ` `// common tangent between two circles ` `// which donot touch each other ` ` ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to find the length of the direct common tangent ` `void` `lengtang(` `double` `r1, ` `double` `r2, ` `double` `d) ` `{ ` ` ` `cout << ` `"The length of the direct"` ` ` `<<` `" common tangent is "` ` ` `<< ` `sqrt` `(` `pow` `(d, 2) - ` `pow` `((r1 - r2), 2)) ` ` ` `<< endl; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `double` `r1 = 4, r2 = 6, d = 12; ` ` ` `lengtang(r1, r2, d); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java program to find ` `// the length of the direct ` `// common tangent between two circles ` `// which donot touch each other ` `class` `GFG ` `{ ` ` ` `// Function to find the length of ` `// the direct common tangent ` `static` `void` `lengtang(` `double` `r1, ` `double` `r2, ` `double` `d) ` `{ ` ` ` `System.out.println(` `"The length of the direct"` ` ` `+` `" common tangent is "` ` ` `+(Math.sqrt(Math.pow(d, ` `2` `) - ` ` ` `Math.pow((r1 - r2), ` `2` `)))); ` `} ` ` ` `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` ` ` `double` `r1 = ` `4` `, r2 = ` `6` `, d = ` `12` `; ` ` ` `lengtang(r1, r2, d); ` `} ` `} ` ` ` `/* This code contributed by PrinciRaj1992 */` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program to find ` `# the length of the direct ` `# common tangent between two circles ` `# which do not touch each other ` `import` `math ` ` ` `# Function to find the length ` `# of the direct common tangent ` `def` `lengtang(r1, r2, d): ` ` ` `print` `(` `"The length of the direct common tangent is"` `, ` ` ` `(((d ` `*` `*` `2` `) ` `-` `((r1 ` `-` `r2) ` `*` `*` `2` `)) ` `*` `*` `(` `1` `/` `2` `))); ` ` ` `# Driver code ` `r1 ` `=` `4` `; r2 ` `=` `6` `; d ` `=` `12` `; ` `lengtang(r1, r2, d); ` ` ` `# This code is contributed by 29AjayKumar ` |

*chevron_right*

*filter_none*

## C#

`// C# program to find ` `// the length of the direct ` `// common tangent between two circles ` `// which donot touch each other ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` ` ` `// Function to find the length of ` ` ` `// the direct common tangent ` ` ` `static` `void` `lengtang(` `double` `r1, ` `double` `r2, ` `double` `d) ` ` ` `{ ` ` ` `Console.WriteLine(` `"The length of the direct"` ` ` `+` `" common tangent is "` ` ` `+(Math.Sqrt(Math.Pow(d, 2) - ` ` ` `Math.Pow((r1 - r2), 2)))); ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main() ` ` ` `{ ` ` ` `double` `r1 = 4, r2 = 6, d = 12; ` ` ` `lengtang(r1, r2, d); ` ` ` `} ` `} ` ` ` `// This code is contributed by AnkitRai01 ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP program to find the length ` `// of the direct common tangent ` `// between two circles which ` `// donot touch each other ` ` ` `// Function to find the length ` `// of the direct common tangent ` `function` `lengtang(` `$r1` `, ` `$r2` `, ` `$d` `) ` `{ ` ` ` `echo` `"The length of the direct"` `, ` ` ` `" common tangent is "` `, ` ` ` `sqrt(pow(` `$d` `, 2) - ` ` ` `pow((` `$r1` `- ` `$r2` `), 2)), ` `"\n"` `; ` `} ` ` ` `// Driver code ` `$r1` `= 4; ` `$r2` `= 6; ` `$d` `= 12; ` `lengtang(` `$r1` `, ` `$r2` `, ` `$d` `); ` ` ` `// This code is contributed by akt_mit ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

The length of the direct common tangent is 11.8322

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.