给定 3D 中的两个坐标 (x1, y1, z1) 和 (x2, y2, z2) 以及 m 和 n,找到分割连接 (x1, y1, Z1) 和 (x2, y2, Z2) 的线的坐标) 的比率为 m:n。
例子:
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
方法:
给定 3D 中的两个坐标 A(x1, y1, Z1) 和 B(x2, y2, Z2) 以及 m 和 n,我们必须找到分割连接 (x1, y1, Z1) 和 ( x2, y2, Z2) 的比率为 m:n。
让坐标为 P(x, y, z)
然后根据 3D 中的部分公式
x = (m * x2 + n * x1) / (m + n)
y = (m * y2 + n * y1) / (m + n)
z = (m * z2 + n * z1) / (m + n)
下面是上述方法的实现:
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
输出:
(2.8, 0.6, 3.2)