【问题标题】:Find midpoint between two points on a sphere找到球体上两点之间的中点
【发布时间】:2018-10-31 06:09:56
【问题描述】:

我有一个球体,@​​987654324@ 以origin=(0, 0, 0) 为中心。在这个领域,我有几点我知道(见图)。现在我想根据这个规则找到新的点:

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

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

根据我之前的研究,这可能涉及计算great circle distance ...,然后找到结果弧的中点。但我不知道该怎么做,也不知道这是否是正确的方法。

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

【问题讨论】:

    标签: math geometry


    【解决方案1】:

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

    1. 计算连接两个给定点的线段的实际中点。如果这两个点不在球体的相对两侧,则该中点将不是原点,而是在球体内。
    2. 标准化该点,使其远离原点并移到球体上。

    如果你的两个点是(x1, y1, z1)(x2, y2, z2),那么中点是

    ((x1+x2)/2, (y1+y2)/2, (z1+z2)/2)
    

    我们称之为(x3, y3, z3)。该点与原点的距离为sqrt(x3^2 + y3^2 + z3^2)——我们称其为L。如果该点是原点,L 为零,并且根据您的定义没有“中点”。否则,您想要的“中点”是

    (x3/L, y3/L, x3/L)
    

    因为你的球体的半径为1。如果半径是别的东西,将这些坐标乘以半径。一些编程语言可以使计算变得更简单——有些已经提供了标准化函数。

    【讨论】:

    • 如果你还是要规范化,你可以通过选择 (x3, y3, z3) 为 ((x1+x2), (y1+y2), (z1+) 来避免三个不必要的划分z2)),然后对其进行归一化。
    猜你喜欢
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    相关资源
    最近更新 更多