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:
// CPP program to find point that divides // given line in given ratio in 3D. #include <iostream> 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 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 |
# 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# 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. |
<script> // Javascript program to find point that // divides given line in given ratio in 3D. // Function to find the section // of the line function section(x1, x2, y1, y2, z1, z2, m, n)
{ // Applying section formula
let x = ((m * x2) + (n * x1)) / (m + n);
let y = ((m * y2) + (n * y1)) / (m + n);
let z = ((m * z2) + (n * z1)) / (m + n);
document.write( "(" + x + ", " );
document.write(y + ", " );
document.write(z + ")" );
} // Driver code let 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 suresh07 </script> |
<?php // PHP program to find point that divides // given line in given ratio in 3D. // Function to find the section of the line function 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
echo "(" . $x . ", " ;
echo $y . ", " ;
echo $z . ")" . "\n" ;
} // Driver code $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 Akanksha Rai |
(2.8, 0.6, 3.2)
Time complexity: O(1) because it is performing constant operations
Auxiliary space: O(1)