# Python Program for Section Formula (Point that Divides a Line in Given Ratio)

In the previous article, we have discussed Python Program to Find the Mid-Point of a Line
Given two points of a line and P, Q, the task is to find the point that divides the line in the given ratio P: Q in Python.

The section formula gives us the coordinates of the point that divides a given line segment into two parts with lengths that are in the ratio m: n.

Section Formula:

(mx2+nx1)/(m+n), (my2+ny1)/(m+n)

Examples:

Example1:

Input:

Given First Point = ( 2, 4 )
Given Second Point = ( 1, 3 )
Given ratio value p= 1
Given ratio value q= 2

Output:

The point that divides the line in the given ratio ( 1 : 2 ) is :
( 1.6666666666666667 , 3.6666666666666665 )

Example2:

Input:

Given First Point = ( 5, 7)
Given Second Point = ( 2, 8 )
Given ratio value p= 2
Given ratio value q= 5

Output:

The point that divides the line in the given ratio ( 2 : 5 ) is :
( 4.142857142857143 , 7.285714285714286 )

## Program for Section Formula (Point that Divides a Line in Given Ratio) in Python:

Below are the ways to find the point that divides the line in the given ratio P: Q in Python:

### Method #1: Using Mathematical Formula (Static Input)

Approach:

• Give the first point as static input and store it in two variables.
• Give the second point as static input and store it in another two variables.
• Give the ratio values p, q as static input and store them in two separate variables.
• Pass the given two points of a line and the ratio values i.e, a1, a2, b1, b2, p, q as the arguments to the Find_Section() function.
• Create a function to say Find_Midpoint() which takes the given two points of a line and the ratio values i.e, a1, a2, b1, b2, p, q as the arguments and prints the point that divides the line in the given ratio p: q.
• Inside the function calculate the x coordinate of the point using the mathematical formula (q * a1)+(p * a2))/(p + q) and convert it into float using the float() function.
• Store it in a variable.
• Calculate the y coordinate of the point using the mathematical formula (q * b1)+(p * b2))/(p + q) and convert it into float using the float() function.
• Store it in another variable.
• Print the point that divides the line in the given ratio p: q.
• The Exit of the Program.

Below is the implementation:

# Create a function to say Find_Midpoint() which takes the given two points of a line
# and the ratio values i.e, a1, a2, b1, b2, p, q as the arguments and prints the point
# that divides the line in the given ratio p: q.

def Find_Section(a1, a2, b1, b2, p, q):
# Inside the function calculate the x coordinate of the point using the mathematical
# formula (q * a1)+(p * a2))/(p + q) and convert it into float
# using the float() function.
# Store it in a variable.
x_coordinate = (float)((q * a1)+(p * a2))/(p + q)
# Calculate the y coordinate of the point using the mathematical formula
# (q * b1)+(p * b2))/(p + q) and convert it into float using the
# float() function.
# Store it in another variable.
y_coordinate = (float)((q * b1)+(p * b2))/(p + q)

# Print the point that divides the line in the given ratio p: q.
print("(", x_coordinate, ",", y_coordinate, ")")

# Give the first point as static input and store it in two variables.
a1 = 2
b1 = 4
# Give the second point as static input and store it in another two variables.
a2 = 1
b2 = 3
p = 1
q = 2
print("The point that divides the line in the given ratio (", p, ":", q, ") is :")
# Pass the given two points of a line and the ratio values i.e, a1, a2, b1, b2, p, q as
# the arguments to the Find_Section() function.
Find_Section(a1, a2, b1, b2, p, q)


Output:

The point that divides the line in the given ratio ( 1 : 2 ) is :
( 1.6666666666666667 , 3.6666666666666665 )

### Method #2: Using Mathematical Formula (User Input)

Approach:

• Give the first point as user input using map(),int(),split() functions and store it in two variables.
• Give the second point as user input using map(),int(),split() functions and store it in two variables.
• Give the ratio values p, q as static input and store them in two separate variables.
• Pass the given two points of a line and the ratio values i.e, a1, a2, b1, b2, p, q as the arguments to the Find_Section() function.
• Create a function to say Find_Midpoint() which takes the given two points of a line and the ratio values i.e, a1, a2, b1, b2, p, q as the arguments and prints the point that divides the line in the given ratio p: q.
• Inside the function calculate the x coordinate of the point using the mathematical formula (q * a1)+(p * a2))/(p + q) and convert it into float using the float() function.
• Store it in a variable.
• Calculate the y coordinate of the point using the mathematical formula (q * b1)+(p * b2))/(p + q) and convert it into float using the float() function.
• Store it in another variable.
• Print the point that divides the line in the given ratio p: q.
• The Exit of the Program.

Below is the implementation:

# Create a function to say Find_Midpoint() which takes the given two points of a line
# and the ratio values i.e, a1, a2, b1, b2, p, q as the arguments and prints the point
# that divides the line in the given ratio p: q.

def Find_Section(a1, a2, b1, b2, p, q):
# Inside the function calculate the x coordinate of the point using the mathematical
# formula (q * a1)+(p * a2))/(p + q) and convert it into float
# using the float() function.
# Store it in a variable.
x_coordinate = (float)((q * a1)+(p * a2))/(p + q)
# Calculate the y coordinate of the point using the mathematical formula
# (q * b1)+(p * b2))/(p + q) and convert it into float using the
# float() function.
# Store it in another variable.
y_coordinate = (float)((q * b1)+(p * b2))/(p + q)

# Print the point that divides the line in the given ratio p: q.
print("(", x_coordinate, ",", y_coordinate, ")")

# Give the first point as user input using map(),int(),split() functions
# and store it in two variables.
a1, b1 = map(int, input(
'Enter some random first point values separated by spaces = ').split())
# Give the second point as user input using map(),int(),split() functions
# and store it in two variables.
a2, b2 = map(int, input(
'Enter some random second point values separated by spaces = ').split())
p = 2
q = 5
print("The point that divides the line in the given ratio (", p, ":", q, ") is :")
# Pass the given two points of a line and the ratio values i.e, a1, a2, b1, b2, p, q as
# the arguments to the Find_Section() function.
Find_Section(a1, a2, b1, b2, p, q)


Output:

Enter some random first point values separated by spaces = 5 7
Enter some random second point values separated by spaces = 2 8
The point that divides the line in the given ratio ( 2 : 5 ) is :
( 4.142857142857143 , 7.285714285714286 )

Access the big list of Python Programming Code Examples with actual logical code asked in Programming and Coding Interviews for Python and stand out from the crowd.