Suite

Boîte englobante XYZ d'un polygone sphérique


Je recherche un algorithme pour calculer la boîte englobante 3D d'un polygone sphérique - c'est-à-dire les min/max X, Y et Z sur cette partie de la surface d'une sphère unité.

Le but est de faciliter les calculs rapides de chevauchement de zone pour un grand nombre de polygones sphériques simples (convexes) : Avoir toutes les boîtes englobantes vous permettra de calculer rapidement, pour un polygone cible donné, une grande majorité des autres polygones qui le font certainement. ne pas l'intersectent (car leurs boîtes englobantes sont disjointes).

J'ai déjà un calcul qui fait ce type de sélection, en utilisant des centres de polygones et des rayons maximum. Cependant, cela prendra O(N^2) temps à calculer (pour tous les polygones source ; pour tous les polygones cibles). Alors que, espérons-le, cette approche fonctionnerait en temps O(N.log N), car les informations XYZ peuvent être ordonnées puis triées/recherchées (par exemple, en utilisant kdtrees).

Je pense que c'est un peu moins trivial qu'il n'y paraît. Par exemple, la valeur max X sur un segment de limite de polygone (qui est un grand cercle) peut évidemment se produire à un point situé quelque part entre les deux extrémités. Mais aussi, en fait, une valeur extrême peut se produire quelque part à l'intérieur le polygone loin de la limite -- par exemple, nous devons pouvoir obtenir un Z max = 1,0 pour un polygone dessiné autour du pôle nord, même si sa limite se trouve entièrement au sud du pôle.

Est-ce que n'importe qui peut aider avec ceci ?


Voir la vidéo: Déplacements, surfaces et volumes élémentaires en cylindriques et sphériques (Octobre 2021).