Given are two circles with their **centres C1(x1, y1) and C2(x2, y2)** and **radius r1 and r2**, the task is to check if both the circles are orthogonal or not.

Two curves are said to be orthogonal if their angle of intersection is a right angle i.e the tangents at their point of intersection are perpendicular.

**Examples:**

Input:C1(4, 3), C2(0, 1), r1 = 2, r2 = 4Output:YesInput:C1(4, 3), C2(1, 2), r1 = 2, r2 = 2Output:No

**Approach:**

- Find the distance between the centres of two circles ‘d’ with distance formula.
- For the circles to be orthogonal we need to check if
r1 * r1 + r2 * r2 = d * d

- If it is true, then both the circles are orthagonal. Else not.

Below is the implementation of the above approach:

## C++

`// C++ program to check if two ` `// circles are orthogonal or not ` ` ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to Check if the given ` `// circles are orthogonal ` `bool` `orthogonality(` `int` `x1, ` `int` `y1, ` `int` `x2, ` ` ` `int` `y2, ` `int` `r1, ` `int` `r2) ` `{ ` ` ` ` ` `// calculating the square ` ` ` `// of the distance between C1 and C2 ` ` ` `int` `dsquare = (x1 - x2) * (x1 - x2) ` ` ` `+ (y1 - y2) * (y1 - y2); ` ` ` ` ` `// Check if the given ` ` ` `// circles are orthogonal ` ` ` `if` `(dsquare == r1 * r1 + r2 * r2) ` ` ` `return` `true` `; ` ` ` `else` ` ` `return` `false` `; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `x1 = 4, y1 = 3; ` ` ` `int` `x2 = 0, y2 = 1; ` ` ` `int` `r1 = 2, r2 = 4; ` ` ` ` ` `bool` `f = orthogonality(x1, y1, x2, ` ` ` `y2, r1, r2); ` ` ` ` ` `if` `(f) ` ` ` `cout << ` `"Given circles are"` ` ` `<< ` `" orthogonal."` `; ` ` ` `else` ` ` `cout << ` `"Given circles are"` ` ` `<< ` `" not orthogonal."` `; ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java program to check if two ` `// circ ` `import` `java.util.*; ` `import` `java.lang.*; ` `import` `java.io.*; ` ` ` `class` `GFG ` `{ ` ` ` `// Function to Check if the given ` ` ` `// circles are orthogonal ` ` ` `public` `static` `boolean` `orthogonality(` `int` `x1, ` `int` `y1, ` `int` `x2, ` ` ` `int` `y2, ` `int` `r1, ` `int` `r2) ` ` ` `{ ` ` ` ` ` `// calculating the square ` ` ` `// of the distance between C1 and C2 ` ` ` `int` `dsquare = (x1 - x2) * (x1 - x2) + ` ` ` `(y1 - y2) * (y1 - y2); ` ` ` ` ` `// Check if the given ` ` ` `// circles are orthogonal ` ` ` `if` `(dsquare == r1 * r1 + r2 * r2) ` ` ` `return` `true` `; ` ` ` `else` ` ` `return` `false` `; ` ` ` `} ` ` ` ` ` `// Driver Code ` ` ` `public` `static` `void` `main(String[] args) ` `throws` `java.lang.Exception ` ` ` `{ ` ` ` `int` `x1 = ` `4` `, y1 = ` `3` `; ` ` ` `int` `x2 = ` `0` `, y2 = ` `1` `; ` ` ` `int` `r1 = ` `2` `, r2 = ` `4` `; ` ` ` ` ` `boolean` `f = orthogonality(x1, y1, x2, y2, r1, r2); ` ` ` ` ` `if` `(f) ` ` ` `System.out.println(` `"Given circles are orthogonal."` `); ` ` ` `else` ` ` `System.out.println(` `"Given circles are not orthogonal."` `); ` ` ` `} ` `} ` ` ` `// This code is contributed by ashutosh450 ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program to check if two ` `# circles are orthogonal or not ` ` ` `# Function to Check if the given ` `# circles are orthogonal ` `def` `orthogonality(x1, y1, x2, y2, r1, r2): ` ` ` ` ` `# calculating the square ` ` ` `# of the distance between C1 and C2 ` ` ` `dsquare ` `=` `(x1 ` `-` `x2) ` `*` `(x1 ` `-` `x2) ` `+` `\ ` ` ` `(y1 ` `-` `y2) ` `*` `(y1 ` `-` `y2); ` ` ` ` ` `# Check if the given ` ` ` `# circles are orthogonal ` ` ` `if` `(dsquare ` `=` `=` `r1 ` `*` `r1 ` `+` `r2 ` `*` `r2): ` ` ` `return` `True` ` ` `else` `: ` ` ` `return` `False` ` ` `# Driver code ` `x1, y1 ` `=` `4` `, ` `3` `x2, y2 ` `=` `0` `, ` `1` `r1, r2 ` `=` `2` `, ` `4` ` ` `f ` `=` `orthogonality(x1, y1, x2, y2, r1, r2) ` ` ` `if` `(f): ` ` ` `print` `(` `"Given circles are orthogonal."` `) ` `else` `: ` ` ` `print` `(` `"Given circles are not orthogonal."` `) ` ` ` `# This code is contributed by Mohit Kumar ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation for above program ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` `// Function to Check if the given ` ` ` `// circles are orthogonal ` ` ` `public` `static` `bool` `orthogonality(` `int` `x1, ` `int` `y1, ` `int` `x2, ` ` ` `int` `y2, ` `int` `r1, ` `int` `r2) ` ` ` `{ ` ` ` ` ` `// calculating the square ` ` ` `// of the distance between C1 and C2 ` ` ` `int` `dsquare = (x1 - x2) * (x1 - x2) + ` ` ` `(y1 - y2) * (y1 - y2); ` ` ` ` ` `// Check if the given ` ` ` `// circles are orthogonal ` ` ` `if` `(dsquare == r1 * r1 + r2 * r2) ` ` ` `return` `true` `; ` ` ` `else` ` ` `return` `false` `; ` ` ` `} ` ` ` ` ` `// Driver Code ` ` ` `public` `static` `void` `Main() ` ` ` `{ ` ` ` `int` `x1 = 4, y1 = 3; ` ` ` `int` `x2 = 0, y2 = 1; ` ` ` `int` `r1 = 2, r2 = 4; ` ` ` ` ` `bool` `f = orthogonality(x1, y1, x2, y2, r1, r2); ` ` ` ` ` `if` `(f) ` ` ` `Console.WriteLine(` `"Given circles are orthogonal."` `); ` ` ` `else` ` ` `Console.WriteLine(` `"Given circles are not orthogonal."` `); ` ` ` `} ` `} ` ` ` `// This code is contributed by AnkitRai01 ` |

*chevron_right*

*filter_none*

**Output:**

Given circles are orthogonal.

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.