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.
