计算球形多边形质心


11

我想要一种通用方法来计算球体上多边形的质心。

到目前为止,最好的在线参考似乎是:

Jeff Jenness的图形和形状工具

此处描述的方法建议将多边形分解为多个球形三角形,并计算球形三角形质心的平均值,并按球形三角形面积加权。

我知道有几种定义球形多边形质心的方法,但是我正在寻找类似于以下对点和折线的定义的方法:

  • :表示点的笛卡尔向量的算术平均值。
  • 折线:笛卡尔向量的加权平均值,代表每个线段的中点,由每个线段的(球形)长度加权。

多边形质心定义为按面积加权的三角分解的加权平均值,似乎是一个合理的延续。

我的问题是,无论所使用的三角形分解如何,上述参考文献中的方法是否都将起作用。特别地,它提到相对于任意点甚至在多边形外部都分解为三角形,使得某些三角形将具有负面积,这些负面积会带来负的权重。

相关:如何找到对象的几何中心?

Answers:


9

即使您相对于单个固定点执行所有三角剖分,也无法始终如一地工作。 问题在于,球形和欧几里得计算是混合使用的,没有考虑它们的含义。

使这一点显而易见的一种方法是考虑一个相当极端的三角形,例如几乎半球的一半。例如,从(lon,lat)=(-179,0)开始,沿着赤道到达(0,0),然后一直到(0,90)的北极,然后回到(-)的起点179,0)。这是一个90-179-90的三角形,包括西半球北半部的大部分地区。问题在于它的端点(在图中显示为白点)实际上位于一个平面上:一个端点位于极点,而另外两个端点几乎位于其相对两侧。因此,他们的平均水平,预计回球(红点),几乎是在极-而是因为这是从任何合理的中心,人们可以得到:

大球形三角形

再举一个例子,让我们对代表上半球相对于其中心北极的多边形进行三角剖分。我们将始终将西半球划分为两个相等的半部分,每个半部分为90-90-90的三角形(从而避免了大的,跨半球的三角形出现任何问题)。但是,东半球将分为n个相等的半月球。月球kk = 1,2,...,n)的顶点具有(lon,lat)坐标

((k-1) * 180/n, 0),  (k * 180/n, 0),  (k * 180/n, 90).

k = 8的月球

该图显示了k = 8的设置。红点是根据“图形和形状工具”文档第65-67页计算的单个三角形“中心”。

通过计算,我发现在k = 2的情况下,面积加权中心确实位于北极(如对称性考虑所表明的那样),但是随着n的增加,结果迅速转移到西半球,并且在极限,沿着经度-90度接近89.556度。它位于北极以南约50公里处。

可以肯定的是,一个跨越20,000公里的多边形的+/- 50公里误差很小;在这种情况下,由于不同的三角测量导致的任意变化的总量仅为0.5%。显然,可以通过包含负三角形来使相对误差任意大(只需相对于小三角形添加和减去一些真正大的三角形)。无论如何,任何想进行球面计算的人都在努力避免投影误差,因此他们正在寻求高精度。不推荐使用这种三角剖分方法。


您已经证明,错误可能会累积大n,但是尚不清楚该方法是否一定有缺陷。您使用n的哪个值来达到极限值?
杰森·戴维斯

另外,非常感谢您进行计算并深入研究。我只想再澄清一点,然后再解决这个问题。:)
杰森·戴维斯

杰森,我添加了一个初步的例子来给您一些直觉。极限本身很快就达到了;几十个月球将使您获得几个有效位数。但是新的例子应该可以消除人们对这种加权三角剖分法所做的任何令人怀疑的怀疑-除了小三角形之外,在这种情况下,最好首先在投影坐标中进行计算。进行球面计算的唯一原因是您的分析区域是真正的全局区域,因为所有投影都会引入很多失真。
ub

1
太好了,谢谢。因此,如果我理解正确,则仅对笛卡尔向量求平均值就不会得出球形三角形的合理质心(尤其是像您的第一个示例那样大的质心)。我将研究更好的方法,例如找到大圆中位数的交点。
杰森·戴维斯

顺便说一句,我仍然希望与上述类似的球形区域加权质心会起作用。想象通过在球体的原点添加一个顶点为每个多边形提供3D体积。然后用一个与球的起点相连的不可见的弦将球悬挂起来,并找到一个稳定的平衡点。质心是最低点(它是质心在球面上的投影)。除了一些模棱两可的情况外,这应该起作用,例如一条围绕赤道的条带,在这里我可以选择一个明智的点。很高兴在新问题中讨论您是否认为值得。
杰森·戴维斯

3

枚举多边形质心应具有的属性是一个好主意。这是我的标准:

(a)这是多边形内部的属性(而不是顶点或边)。因此,通过插入附加顶点将边一分为二不应更改质心的位置。请注意,Jenness对质心的定义在此标准上失败,因为质心的位置将取决于多边形如何划分为三角形。

(b)稍微干扰多边形的形状应将质心稍微移动一点。这里有必要对多边形的整体范围施加限制(例如,限制到一个半球)。如果没有此限制,则很容易构造出质心突然通过顶点的轻微移动而摆动到地球另一侧的情况。此条件不包括要求质心位于多边形内部的方法。

(c)对于小多边形,应减少到质心的平面定义。

以下是满足这些条件的两种方法:

(1)在三个维度上计算椭球面的质心,然后投影回椭球面(沿椭球的法线)。很大的优势:可以通过将多边形分解为更简单的形状来计算质心。

(2)质心是到多边形内部所有点的RMS测地线距离最小的点。见巴斯和菲尔莫尔,“球形平均值和应用球面样条插值”,在图形ACM交易20,95-126(2001)。巨大的优势:所得的点不依赖于R 3中如何嵌入表面。

不幸的是,这些定义都不容易直接实施。 但是,第一种方法可以简单地用于球体。最好使用的“基本”区域是由多边形的边缘,通过该边缘的端点的两个子午线以及赤道所界定的四边形。整个多边形的结果需要对边上的贡献求和。(如果多边形环绕一个极点,则需要采取其他步骤。)

假定边缘的端点为(φ 1,λ 1)和(φ 2,λ 2)。让所述边缘的通过α的方位角和端点1 和α 2。假设球体的半径为1,则四边形的面积为

  2 - α 1
      = 2黄褐色-1 [黄褐色½(λ 2 - λ 1)罪½(φ 21)/余弦½(φ 21)]

(由于贝塞尔的缘故,该面积公式在数值上要比常用的三角形面积的L'Huilier公式好。)

该四边形的质心分量由下式给出

  2 X ⟩=φ 2罪(λ 2 - λ 0) - φ 1罪(λ 1 - λ 0
  2 Ŷ ⟩= COSα 0(σ 2 - σ 1) - (φ 2 COS(λ 2 - λ 0) - φ 1 COS(λ 1 - λ 0))
  2 ž ⟩=(λ 2 - λ 1) -罪α 0(σ 2 - σ1

其中,σ 2 - σ 1是边缘的长度,λ 0和α 0是经度和它穿过赤道边缘的方位,并且 Xÿ轴被定向为使得所述赤道交叉是在X = 1,y =0。(当然,z是穿过极点的轴。)


您能解释为什么詹妮斯质心的位置取决于多边形如何划分为三角形吗?我从@whuber的示例知道,Jenness的质心计算对于球形三角形是错误的,但是如果改用基于球形三角形中位数的质心怎么办?这还会失败吗?
杰森·戴维斯

詹尼斯有效地用一组平面三角形替换了球形多边形,并计算了它们的质心。显然(?),结果将取决于分区。进行计算时,我使用球形三角形的质心进行了概述。您可以在JE Brock,球形三角形的惯量张量,J。Applied Mechanics 42,239
cffk 2012年

我又看了一下布洛克的论文。他关于球形三角形质心的公式涉及三角形边缘的总和。因此,可以将其简单地概括为应用于多边形(无需将其分解为三角形)。
cffk 2012年

您是否也愿意为贝塞尔计算面积提供参考?我似乎在任何地方都找不到它,并且我对编写快速(且准确)的球形多边形区域例程感兴趣。谢谢!
杰森·戴维斯

我找到了它,并意识到您已将它翻译成英语,所以谢谢。:)
杰森·戴维斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.