Math 找到球体上两点之间的中点

Math 找到球体上两点之间的中点,math,geometry,Math,Geometry,我有一个球体,半径=1以原点=(0,0,0)为中心。在这个球体上,我知道几个点(见图)。现在我想根据这个规则找到新的点: 通过将球体上两个点之间的距离平分得到一个新点 在这个例子中(见图),我们可以假设我想要找到“FT7”和“FCz”之间的中点。我有“FT7”和“FCz”的xyz(和球面)坐标 根据我以前的研究,这可能涉及计算。。。然后在生成的圆弧上找到中点。但我甚至不知道如何做到这一点,也不知道这是否是正确的方法 最后,这个问题可能会在一些数学网站上更充分地提出,但我希望有一种计算和直观的方法

我有一个球体,
半径=1
原点=(0,0,0)
为中心。在这个球体上,我知道几个点(见图)。现在我想根据这个规则找到新的点:

通过将球体上两个点之间的距离平分得到一个新点

在这个例子中(见图),我们可以假设我想要找到“FT7”和“FCz”之间的中点。我有“FT7”和“FCz”的xyz(和球面)坐标

根据我以前的研究,这可能涉及计算。。。然后在生成的圆弧上找到中点。但我甚至不知道如何做到这一点,也不知道这是否是正确的方法

最后,这个问题可能会在一些数学网站上更充分地提出,但我希望有一种计算和直观的方法来解决这个问题

找到“中点”的一个简单方法是以下两步:

  • 计算连接两个给定点的线段的实际中点。如果两个点不在球体的对边上,则该中点将不是原点,而是位于球体内部
  • 规格化该点以使其远离原点并移动到球体上
  • 如果两点是
    (x1,y1,z1)
    (x2,y2,z2)
    ,则中点为

    ((x1+x2)/2, (y1+y2)/2, (z1+z2)/2)
    
    (x3/L, y3/L, x3/L)
    
    让我们称之为
    (x3,y3,z3)
    。该点与原点的距离为
    sqrt(x3^2+y3^2+z3^2)
    ——我们称之为
    L
    。如果该点是原点,
    L
    为零,根据您的定义,没有“中点”。否则,您想要的“中点”是

    因为您的球体具有半径
    1
    。如果半径是其他值,则将这些坐标乘以半径。有些编程语言可以简化计算——有些语言已经有了标准化功能。

    找到“中点”的一个简单方法是以下两步过程:

  • 计算连接两个给定点的线段的实际中点。如果两个点不在球体的对边上,则该中点将不是原点,而是位于球体内部
  • 规格化该点以使其远离原点并移动到球体上
  • 如果两点是
    (x1,y1,z1)
    (x2,y2,z2)
    ,则中点为

    ((x1+x2)/2, (y1+y2)/2, (z1+z2)/2)
    
    (x3/L, y3/L, x3/L)
    
    让我们称之为
    (x3,y3,z3)
    。该点与原点的距离为
    sqrt(x3^2+y3^2+z3^2)
    ——我们称之为
    L
    。如果该点是原点,
    L
    为零,根据您的定义,没有“中点”。否则,您想要的“中点”是


    因为您的球体具有半径
    1
    。如果半径是其他值,则将这些坐标乘以半径。有些编程语言可以简化计算——有些语言已经有了标准化功能。

    如果你要进行标准化,你可以选择(x3,y3,z3)作为((x1+x2),(y1+y2),(z1+z2)),然后进行标准化,从而避免三个不必要的划分。如果你要进行标准化,通过选择(x3,y3,z3)作为((x1+x2),(y1+y2),(z1+z2)),然后对其进行规范化,可以避免三个不必要的划分。