Related Articles

# Section formula for 3 D

• Last Updated : 10 May, 2021

Given two coordinates (x1, y1, z1) and (x2, y2, z2) in 3D, and m and n, find the co-ordinates that divides the line joining (x1, y1, Z1) and (x2, y2, Z2) in the ratio m : n.

Examples:

Input : x1 = 2, y1 = -1, Z1 = 4, x2 = 4, y2 = 3, Z2 = 2,
m = 2, n = 3
Output : (2.8, .6, 3.2)
Explanation: co-ordinates (2.8, .6, 3.2)
divides the line in ratio 2 : 3

Approach:
Given two coordinates A(x1, y1, Z1) and B(x2, y2, Z2) in 3D, and m and n, we have to find the co-ordinates that divides the line joining (x1, y1, Z1) and (x2, y2, Z2) in the ratio m : n.
Let the co-ordinates will be P(x, y, z)
then according to section fORmula in 3 D
x = (m * x2 + n * x1) / (m + n)
y = (m * y2 + n * y1) / (m + n)
z = (m * z2 + n * z1) / (m + n)

Below is the implementation of above approach:

## C++

 `// CPP program to find point that divides``// given line in given ratio in 3D.``#include ``using` `namespace` `std;` `// Function to find the section of the line``void` `section(``double` `x1, ``double` `x2, ``double` `y1,``             ``double` `y2, ``double` `z1, ``double` `z2,``             ``double` `m, ``double` `n)``{``    ``// Applying section formula``    ``double` `x = ((m * x2) + (n * x1)) / (m + n);` `    ``double` `y = ((m * y2) + (n * y1)) / (m + n);` `    ``double` `z = ((m * z2) + (n * z1)) / (m + n);` `    ``// Printing result``    ``cout << ``"("` `<< x << ``", "``;``    ``cout << y << ``", "``;``    ``cout << z << ``")"` `<< endl;``}` `// Driver code``int` `main()``{``    ``double` `x1 = 2, x2 = 4, y1 = -1,``           ``y2 = 3, z1 = 4, z2 = 2,``           ``m = 2, n = 3;``    ``section(x1, x2, y1, y2, z1, z2, m, n);``    ``return` `0;``}`

## Java

 `// Java program to find point that divides``// given line in given ratio in 3D.``import` `java.util.*;` `class` `solution``{` `// Function to find the section of the line``static` `void` `section(``double` `x1, ``double` `x2, ``double` `y1,``            ``double` `y2, ``double` `z1, ``double` `z2,``            ``double` `m, ``double` `n)``{``    ``// Applying section formula``    ``double` `x = ((m * x2) + (n * x1)) / (m + n);` `    ``double` `y = ((m * y2) + (n * y1)) / (m + n);` `    ``double` `z = ((m * z2) + (n * z1)) / (m + n);` `    ``System.out.print( ``"("` `+x +``", "``);``    ``System.out.print( y+ ``", "``);``    ``System.out.println(z + ``")"` `);` `}` `// Driver code``public` `static` `void` `main(String arr[])``{``    ``double` `x1 = ``2``, x2 = ``4``, y1 = -``1``,``        ``y2 = ``3``, z1 = ``4``, z2 = ``2``,``        ``m = ``2``, n = ``3``;``    ``section(x1, x2, y1, y2, z1, z2, m, n);` `}` `}``//This code is contributed by Surendra_Gangwar`

## Python3

 `# Python 3 program to find point that divides``# given line in given ratio in 3D.` `# Function to find the section of the line``def` `section(x1, x2, y1, y2, z1, z2, m, n):``    ``# Applying section formula``    ``x ``=` `((m ``*` `x2) ``+` `(n ``*` `x1)) ``/` `(m ``+` `n)` `    ``y ``=` `((m ``*` `y2) ``+` `(n ``*` `y1)) ``/` `(m ``+` `n)` `    ``z ``=` `((m ``*` `z2) ``+` `(n ``*` `z1)) ``/` `(m ``+` `n)` `    ``# Printing result``    ``print``(``"("``,x,``","``,y,``","``,z,``")"``)` `# Driver code``if` `__name__ ``=``=` `'__main__'``:``    ``x1 ``=` `2``    ``x2 ``=` `4``    ``y1 ``=` `-``1``    ``y2 ``=` `3``    ``z1 ``=` `4``    ``z2 ``=` `2``    ``m ``=` `2``    ``n ``=` `3``    ``section(x1, x2, y1, y2, z1, z2, m, n)` `#This code is contributed by``# Surendra_Gangwar`

## C#

 `// C# program to find point that divides``// given line in given ratio in 3D.``using` `System;` `class` `GFG``{``    ` `// Function to find the section``// of the line``static` `void` `section(``double` `x1, ``double` `x2, ``double` `y1,``                    ``double` `y2, ``double` `z1, ``double` `z2,``                    ``double` `m, ``double` `n)``{``    ``// Applying section formula``    ``double` `x = ((m * x2) + (n * x1)) / (m + n);` `    ``double` `y = ((m * y2) + (n * y1)) / (m + n);` `    ``double` `z = ((m * z2) + (n * z1)) / (m + n);` `    ``Console.Write(``"("` `+ x +``", "``);``    ``Console.Write(y + ``", "``);``    ``Console.WriteLine(z + ``")"` `);``}` `// Driver code``static` `public` `void` `Main ()``{``    ``double` `x1 = 2, x2 = 4, y1 = -1,``    ``y2 = 3, z1 = 4, z2 = 2,``    ``m = 2, n = 3;``    ``section(x1, x2, y1, y2, z1, z2, m, n);``}``}` `// This code is contributed by ajit.`

## PHP

 `

## Javascript

 ``

Output:

`(2.8, 0.6, 3.2)`

Attention reader! Don’t stop learning now. Join the First-Step-to-DSA Course for Class 9 to 12 students , specifically designed to introduce data structures and algorithms to the class 9 to 12 students

My Personal Notes arrow_drop_up