Je voudrais une façon générale de calculer les centroïdes pour les polygones sur une sphère.
Jusqu'à présent, la meilleure référence en ligne semble être:
Outils pour les graphiques et les formes par Jeff Jenness.
La méthode décrite ici suggère de décomposer le polygone en plusieurs triangles sphériques et de calculer la moyenne des centroïdes triangulaires sphériques, pondérée par la zone du triangle sphérique.
Je sais qu'il existe plusieurs façons de définir un polygone centroïde sphérique, mais je cherche quelque chose d'analogue aux définitions suivantes pour les points et les polylignes:
- Points : moyenne arithmétique des vecteurs cartésiens représentant les points.
- Polylignes : moyenne pondérée des vecteurs cartésiens représentant les points médians de chaque segment de ligne, pondérée par la longueur (sphérique) de chaque segment.
Il semble raisonnable de continuer à définir les centroïdes de polygones comme la moyenne pondérée de la décomposition triangulaire, pondérée par zone.
Ma question est de savoir si la méthode de la référence ci-dessus fonctionnera quelle que soit la décomposition triangulaire utilisée. En particulier, il mentionne la décomposition en triangles par rapport à un point arbitraire, même extérieur au polygone, de sorte que certains triangles auront des zones négatives qui contribuent à un poids négatif.
Connexe: Comment trouver le centre de la géométrie d'un objet?
la source
C'est une bonne idée d'énumérer les propriétés que le centroïde d'un polygone devrait avoir. Voici mes critères:
(a) C'est une propriété de l'intérieur du polygone (au lieu des sommets ou des bords). Ainsi, la division d'un bord en deux en insérant un sommet supplémentaire ne devrait pas changer la position du centroïde. Notez que la définition de Jenness du centroïde échoue sur ce critère, car la position du centroïde dépendra de la façon dont un polygone est divisé en triangles.
(b) La perturbation d'un peu de la forme du polygone devrait déplacer un peu le centroïde. Il est nécessaire ici d'imposer une restriction sur l'étendue globale du polygone (par exemple, à un seul hémisphère). Sans cette restriction, il est facile de construire des cas où le centroïde basculera soudainement du côté opposé de la terre avec un léger mouvement d'un sommet. Cette condition exclut les méthodes qui exigent que le centroïde se trouve à l'intérieur du polygone.
(c) Il devrait se réduire à la définition plane du centroïde pour les petits polygones.
Voici deux approches répondant à ces critères:
(1) Calculer le centroïde du polygone ellipsoïdal en trois dimensions et projeter de nouveau sur la surface ellipsoïdale (le long d'une normale à l'ellipsoïde). Gros avantage: le centroïde peut être calculé en divisant le polygone en formes plus simples.
(2) Le centroïde est le point avec une distance géodésique RMS minimale à tous les points à l'intérieur du polygone. Voir Buss et Fillmore, "Moyennes sphériques et applications aux splines sphériques et interpolation", ACM Transactions on Graphics 20 , 95-126 (2001). Gros avantage: le point résultant ne dépend pas de la façon dont la surface est intégrée dans R 3 .
Malheureusement, aucune de ces définitions n'est simple à mettre en pratique. Cependant , la première méthode peut être effectuée simplement pour une sphère. La meilleure zone "élémentaire" à utiliser est le quadrilatère délimité par une arête du polygone, deux méridiens passant par les extrémités de l'arête et l'équateur. Le résultat pour l'ensemble du polygone implique l'addition des contributions sur les bords. (Des mesures supplémentaires doivent être prises si le polygone encercle un pôle.)
Supposons que les extrémités du bord soient (φ 1 , λ 1 ) et (φ 2 , λ 2 ). Soit les azimuts du bord et des extrémités par α 1 et α 2 . En supposant que le rayon de la sphère est 1, l'aire du quadrilatère est
A = α 2 - α 1
= 2 tan −1 [tan ½ (λ 2 - λ 1 ) sin ½ (φ 2 + φ 1 ) / cos ½ (φ 2 + φ 1 )]
(Cette formule pour l'aire, due à Bessel, se comporte sensiblement mieux numériquement que la formule couramment utilisée par L'Huilier pour l'aire d'un triangle.)
Les composantes du centroïde pour ce quadrilatère sont données par
2 A ⟨ x ⟩ = φ 2 sin (λ 2 - λ 0 ) - φ 1 sin (λ 1 - λ 0 )
2 A ⟨ y ⟩ = cos α 0 (σ 2 - σ 1 ) - (φ 2 cos (λ 2 - λ 0 ) - φ 1 cos (λ 1 - λ 0 ))
2 A ⟨ z ⟩ = (λ 2 - λ 1 ) - sin α 0 (σ 2 - σ1 )
où σ 2 - σ 1 est la longueur du bord, et λ 0 et α 0 sont la longitude et l'azimut du bord où il traverse l'équateur, et les axes x et y sont orientés de sorte que le croisement de l'équateur soit à x = 1, y = 0. ( z est l'axe passant par le pôle, bien sûr.)
la source