Étant donné des valeurs sur un maillage, quel algorithme puis-je utiliser pour construire efficacement des contours d'ensemble de niveaux?

9

J'ai un maillage, des faces , des arêtes E et des sommets V , et j'ai une liste de contours de niveaux prédéfinis.FEV

Quel algorithme puis-je utiliser pour construire les contours de la manière la plus efficace?

entrez la description de l'image ici

Un tracé du contour est illustré ci-dessus. Les lignes de même couleur ont la même valeur .z

Graviton
la source
1
Pourquoi le downvote?
Graviton
1
pas sûr, cela me semble être une question pertinente. Votant? Un problème est que les isolignes ne semblent pas particulièrement bien définies pour les données de maillage. Pourriez-vous peut-être donner un exemple graphique du problème que vous essayez de résoudre?
Aron Ahmadia

Réponses:

4

Cela peut être fait par une boucle sur chaque élément puis pour chaque élément une boucle sur les bords. Ensuite, pour chaque arête, déterminez la coordonnée d'un contour donné si elle traverse l'arête, c'est-à-dire vérifiez si le contour prend une valeur dans l'intervalle couvert par les valeurs des sommets. Si le contour traverse deux arêtes, tracez une ligne entre les coordonnées entre les points de croisement détectés sur les arêtes.

Faire cela pour tous les éléments créera les contours. Il est également possible d'affiner un maillage plus fin via une interpolation sur chaque triangle, puis d'utiliser une triangulation delaunay du maillage raffiné, puis d'appliquer la routine décrite ci-dessus pour obtenir une résolution suffisamment fine.

Allan P. Engsig-Karup
la source
O(Fn)Fn
@Graviton: Je ne pense pas que vous puissiez vous attendre à être bien meilleur que la mise à l'échelle linéaire avec la taille du problème ...
Allan P. Engsig-Karup