📜  3 D的截面公式

📅  最后修改于: 2021-04-28 18:25:16             🧑  作者: Mango

给定3D中的两个坐标(x1,y1,z1)和(x2,y2,z2),以及m和n,找到将连接线(x1,y1,Z1)和(x2,y2,Z2)分开的坐标)的比例为m:n。

例子:

方法:
给定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



输出:

(2.8, 0.6, 3.2)