# Length of direct common tangent between two intersecting Circles

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

**Examples:**

Input:r1 = 4, r2 = 6, d = 3Output:2.23607Input:r1 = 14, r2 = 43, d = 35Output:19.5959

**Approach**:

**r1**&

**r2**respectively.

**d**units.

**angle OPQ = 90 deg**

angle O’QP = 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

OP || QR

**OP = QR = r1 and PQ = OR = d**

**triangle OO’R**

**angle ORO’ = 90**

By **Pythagoras theorem**

**OR^2 + O’R^2 = (OO’^2)
OR^2 + (r1-r2)^2 = d^2**

**OR^2= d^2-(r1-r2)^2**

OR = √{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 intersect 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 = 3; ` ` ` `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 intersect 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 = ` `3` `; ` ` ` `lengtang(r1, r2, d); ` ` ` `} ` `} ` ` ` `/* This code contributed by PrinciRaj1992 */` |

*chevron_right*

*filter_none*

## Python3

`# Python program to find ` `# the length of the direct ` `# common tangent between two circles ` `# which intersect each other ` ` ` `# 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 ` `=` `3` `; ` `lengtang(r1, r2, d); ` ` ` `# This code has been contributed by 29AjayKumar ` |

*chevron_right*

*filter_none*

## C#

`// C# program to find ` `// the length of the direct ` `// common tangent between two circles ` `// which intersect 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(String[] args) ` ` ` `{ ` ` ` `double` `r1 = 4, r2 = 6, d = 3; ` ` ` `lengtang(r1, r2, d); ` ` ` `} ` `} ` ` ` `/* This code contributed by PrinciRaj1992 */` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP program to find ` `// the length of the direct ` `// common tangent between two circles ` `// which intersect 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)) ; ` `} ` ` ` `// Driver code ` `$r1` `= 4; ` `$r2` `= 6; ` `$d` `= 3; ` `lengtang(` `$r1` `, ` `$r2` `, ` `$d` `); ` ` ` `// This code is contributed by AnkitRai01 ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

The length of the direct common tangent is 2.23607

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

## Recommended Posts:

- Length of direct common tangent between the two non-intersecting Circles
- Length of the transverse common tangent between the two non intersecting circles
- Length of the direct common tangent between two externally touching circles
- Distance between centers of two intersecting circles if the radii and common chord length is given
- Ratio of the distance between the centers of the circles and the point of intersection of two direct common tangents to the circles
- Ratio of the distance between the centers of the circles and the point of intersection of two transverse common tangents to the circles
- Radius of the inscribed circle within three tangent circles
- Radii of the three tangent circles of equal radius which are inscribed within a circle of given radius
- Number of common tangents between two circles if their centers and radius is given
- Length of rope tied around three equal circles touching each other
- Length of the perpendicular bisector of the line joining the centers of two circles
- Maximum length subsequence such that adjacent elements in the subsequence have a common factor
- Find Tangent at a given point on the curve
- Print first n Fibonacci Numbers using direct formula
- Find the centroid of a non-self-intersecting closed Polygon

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.