Skip to content
Related Articles
Angle between a Pair of Lines
• Difficulty Level : Medium
• Last Updated : 07 May, 2021

Given two integers M1 and M2 representing the slope of two lines intersecting at a point, the task is to find the angle between these two lines.

Examples:

Input: M1 = 1.75, M2 = 0.27
Output: 45.1455 degrees

Input: M1 = 0.5, M2 = 1.75
Output: 33.6901 degrees

Approach: If θ is the angle between the two intersecting lines, then the angle θ can be calculated by:

tanθ = |(M2 – M1) / (1 + M1 * M2)|
=> θ = tan-1( |(M2 – M1) / (1 + M1 * M2)| )

Follow the steps below to solve the problem:

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach``#include ``using` `namespace` `std;` `#define PI 3.14159265` `// Function to find the``// angle between two lines``void` `findAngle(``double` `M1, ``double` `M2)``{``    ``// Store the tan value  of the angle``    ``double` `angle = ``abs``((M2 - M1)``                       ``/ (1 + M1 * M2));` `    ``// Calculate tan inverse of the angle``    ``double` `ret = ``atan``(angle);` `    ``// Convert the angle from``    ``// radian to degree``    ``double` `val = (ret * 180) / PI;` `    ``// Print the result``    ``cout << val;``}` `// Driver Code``int` `main()``{``    ``double` `M1 = 1.75, M2 = 0.27;` `    ``findAngle(M1, M2);` `    ``return` `0;``}`

## Java

 `// Java program for the above approach``import` `java.util.*;``class` `GFG``{``    ``static` `double` `PI = ``3.14159265``;` `    ``// Function to find the``    ``// angle between two lines``    ``static` `void` `findAngle(``double` `M1, ``double` `M2)``    ``{``      ` `        ``// Store the tan value  of the angle``        ``double` `angle = Math.abs((M2 - M1) / (``1` `+ M1 * M2));` `        ``// Calculate tan inverse of the angle``        ``double` `ret = Math.atan(angle);` `        ``// Convert the angle from``        ``// radian to degree``        ``double` `val = (ret * ``180``) / PI;` `        ``// Print the result``        ``System.out.println(val);``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String []args)``    ``{``        ``double` `M1 = ``1.75``, M2 = ``0.27``;` `        ``findAngle(M1, M2);``    ``}``}` `// This code is contributed by rrrtnx.`

## Python3

 `# Python3 program for the above approach``from` `math ``import` `atan` `# Function to find the``# angle between two lines``def` `findAngle(M1, M2):``    ``PI ``=` `3.14159265``    ` `    ``# Store the tan value  of the angle``    ``angle ``=` `abs``((M2 ``-` `M1) ``/` `(``1` `+` `M1 ``*` `M2))` `    ``# Calculate tan inverse of the angle``    ``ret ``=` `atan(angle)` `    ``# Convert the angle from``    ``# radian to degree``    ``val ``=` `(ret ``*` `180``) ``/` `PI` `    ``# Print the result``    ``print` `(``round``(val, ``4``))` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ``M1 ``=` `1.75``    ``M2 ``=` `0.27` `    ``findAngle(M1, M2)` `    ``# This code is contributed by mohit kumar 29.`

## C#

 `// C# program for the above approach``using` `System;``class` `GFG``{``    ``static` `double` `PI = 3.14159265;` `    ``// Function to find the``    ``// angle between two lines``    ``static` `void` `findAngle(``double` `M1, ``double` `M2)``    ``{``      ` `        ``// Store the tan value  of the angle``        ``double` `angle = Math.Abs((M2 - M1) / (1 + M1 * M2));` `        ``// Calculate tan inverse of the angle``        ``double` `ret = Math.Atan(angle);` `        ``// Convert the angle from``        ``// radian to degree``        ``double` `val = (ret * 180) / PI;` `        ``// Print the result``        ``Console.Write(val);``    ``}` `    ``// Driver Code``    ``public` `static` `void` `Main()``    ``{``        ``double` `M1 = 1.75, M2 = 0.27;` `        ``findAngle(M1, M2);``    ``}``}` `// This code is contributed by ukasp.`

## Javascript

 ``
Output:
`45.1455`

Time Complexity: O(1)
Auxiliary Space: 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