Equation of straight line passing through a given point which bisects it into two equal line segments

Given a straight line which passes through a given point (x0, y0) such that this point bisects the line segment in two equal line segments. The task is to find the equation of this straight line.

Examples:

Input: x0 = 4, y0 = 3
Output: 3x + 4y = 24

Input: x0 = 7, y0 = 12
Output: 12x + 7y = 168

Approach:

Let PQ be the line and AB be the line segment between the axes. The x-intercept and y-intercept are a & b respectively.
Now, as C(x0, y0) bisects AB so,
x0 = (a + 0) / 2 i.e. a = 2x0
Similiarly, y0 = (0 + b) / 2 i.e. b = 2y0
We know that the equation of a straight line in intecept form is,



x / a + y / b = 1
Here, a = 2x0 & b = 2y0
So, x / 2x0 + y / 2y0 = 1
or, x / x0 + y / y0 = 2
Therefore, x * y0 + y * x0 = 2 * x0 * y0

Below is the implementation of the above approach:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation of the approach
#include <iostream>
using namespace std;
  
// Function to print the equation
// of the required line
void line(double x0, double y0)
{
    double c = 2 * y0 * x0;
    cout << y0 << "x"
         << " + " << x0 << "y = " << c;
}
  
// Driver code
int main()
{
    double x0 = 4, y0 = 3;
    line(x0, y0);
  
    return 0;
}
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of the approach
class GFG
{
      
// Function to print the equation
// of the required line
static void line(double x0, double y0)
{
    double c = (int)(2 * y0 * x0);
    System.out.println(y0 + "x" + " + "
                       x0 + "y = " + c);
}
  
// Driver code
public static void main(String[] args)
{
    double x0 = 4, y0 = 3;
    line(x0, y0);
}
}
  
// This code is contributed 
// by Code_Mech
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 implementation of the approach
  
# Function to print the equation
# of the required line
def line(x0, y0):
    c = 2 * y0 * x0
    print(y0, "x", "+", x0, "y=", c)
  
# Driver code
if __name__ == '__main__':
    x0 = 4
    y0 = 3
    line(x0, y0)
      
# This code is contributed by
# Surendra_Gangwar
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of the approach
using System;
  
class GFG
{
      
// Function to print the equation
// of the required line
static void line(double x0, double y0)
{
    double c = (int)(2 * y0 * x0);
    Console.WriteLine(y0 + "x" + " + "
                    x0 + "y = " + c);
}
  
// Driver code
public static void Main(String[] args)
{
    double x0 = 4, y0 = 3;
    line(x0, y0);
}
}
  
/* This code contributed by PrinciRaj1992 */
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP implementation of the approach 
  
// Function to print the equation 
// of the required line 
function line($x0, $y0
    $c = 2 * $y0 * $x0
    echo $y0 , "x"," + ",
         $x0 , "y = " , $c
  
// Driver code 
$x0 = 4; $y0 = 3; 
line($x0, $y0); 
  
// This code is contributed by Ryuga
?>
chevron_right

Output:
3x + 4y = 24

Rated as one of the most sought after skills in the industry, own the basics of coding with our C++ STL Course and master the very concepts by intense problem-solving.





Program Analyst Trainee,Cognizant

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.



Article Tags :
Practice Tags :