Distance between two parallel lines
Given are two parallel straight lines with slope m, and different y-intercepts b1 & b2.The task is to find the distance between these two parallel lines.
Examples:
Input: m = 2, b1 = 4, b2 = 3 Output: 0.333333 Input: m = -4, b1 = 11, b2 = 23 Output: 0.8
Approach:
- Let PQ and RS be the parallel lines, with equations
y = mx + b1
y = mx + b2
- The distance between these two lines is the distance between the two intersection points of these lines with the perpendicular line.Let that distance be d.
- So, equation of the line perpendicular to PQ and RS can be
y = -x/m
- Now, solving the perpendicular line with PQ and RS separately to get the intersecting points (x1, y1) & (x2, y2), we get,
- From PQ,
y = mx + b1
y = -x/m
(x1, y1) = ( -b1*m/(m^2 + 1), b1/(m^2 + 1))
- From RS,
y = mx + b2
y = -x/m
(x2, y2) = ( -b2*m/(m^2 + 1), b2/(m^2 + 1))
- So, d = distance between (x1, y1) and (x2, y2)
Below is the implementation of the above approach:
C++
// C++ program find the distance // between two parallel lines #include <bits/stdc++.h> using namespace std; // Function to find the distance // between parallel lines double dist( double m, double b1, double b2) { double d = fabs (b2 - b1) / ((m * m) - 1); return d; } // Driver Code int main() { double m = 2, b1 = 4, b2 = 3; cout << dist(m, b1, b2); return 0; } |
Java
// Java program find the distance // between two parallel lines class GFG { // Function to find the distance // between parallel lines static double dist( double m, double b1, double b2) { double d = Math.abs(b2 - b1) / ((m * m) - 1 ); return d; } // Driver Code public static void main(String[] args) { double m = 2 , b1 = 4 , b2 = 3 ; System.out.println(dist(m, b1, b2)); } } // This code is contributed by Code_Mech. |
Python3
# Python3 program find the distance # between two parallel lines # Function to find the distance # between parallel lines def dist(m, b1, b2): d = abs (b2 - b1) / ((m * m) - 1 ); return d; # Driver Code def main(): m, b1, b2 = 2 , 4 , 3 ; print (dist(m, b1, b2)); if __name__ = = '__main__' : main() # This code contributed by PrinciRaj1992 |
C#
// C# program find the distance // between two parallel lines using System; class GFG { // Function to find the distance // between parallel lines static double dist( double m, double b1, double b2) { double d = Math.Abs(b2 - b1) / ((m * m) - 1); return d; } // Driver Code public static void Main() { double m = 2, b1 = 4, b2 = 3; Console.Write(dist(m, b1, b2)); } } // This code is contributed by Akanksha Rai |
PHP
<?php // PHP program find the distance // between two parallel lines // Function to find the distance // between parallel lines function dist( $m , $b1 , $b2 ) { $d = abs ( $b2 - $b1 ) / (( $m * $m ) - 1); return $d ; } // Driver Code $m = 2; $b1 = 4; $b2 = 3; echo dist( $m , $b1 , $b2 ); // This code is contributed by Ryuga ?> |
Javascript
<script> // javascript program find the distance // between two parallel lines // Function to find the distance // between parallel lines function dist(m, b1 , b2) { var d = Math.abs(b2 - b1) / ((m * m) - 1); return d; } // Driver Code var m = 2, b1 = 4, b2 = 3; document.write(dist(m, b1, b2).toFixed(5)); // This code contributed by Princi Singh </script> |
Output:
0.333333
Time Complexity: O(1)
Auxiliary Space: O(1)
Please Login to comment...