Gradient discret?

Aug 22 2020

J'essaie de comprendre comment obtenir le gradient discret d'un maillage qui est utilisé comme entrée d'une fonction $f$. En d'autres termes pour chaque sommet$v$ il y a une quantité scalaire $s$ associé avec.

J'essaye de comprendre comment calculer le gradient discret de $f$à la surface. Pour cela, je vérifiais ces diapositives:

http://www.hao-li.com/cs599-ss2015/slides/Lecture04.1.pdf

Mais ce n'est pas un déclic. La notation par morceaux que je suppose est juste une tentative de formalisation "nous n'avons aucune idée de ce que seraient les valeurs au niveau des triangles, donc nous allons juste interpoler linéairement en utilisant des coordonnées barycentriques".

Mais ensuite, les diapositives atteignent cette formule finale pour le dégradé:

Je comprends un peu la partie inférieure, qui semble indiquer la base du gradient à $i$ est un vecteur orthogonal au bord opposé divisé par 2 fois l'aire du triangle (je suppose), mais comment la formule du haut a-t-elle été dérivée?

Réponses

1 NathanReed Sep 23 2020 at 01:06

Il définit le gradient en termes de coordonnées barycentriques. C'est similaire à la dérivation dans cette réponse , seulement réarrangé un peu algébriquement en utilisant le fait que les trois coordonnées barycentriques totalisent un.$$ \begin{aligned} f(\mathbf{u}) &= f_i B_i(\mathbf{u}) + f_j B_j(\mathbf{u}) + f_k B_k(\mathbf{u}) \\ &= f_i (1 - B_j(\mathbf{u}) - B_k(\mathbf{u})) + f_j B_j(\mathbf{u}) + f_k B_k(\mathbf{u}) \\ &= f_i + (f_j - f_i) B_j(\mathbf{u}) + (f_k - f_i) B_k(\mathbf{u}) \\ \nabla f(\mathbf{u}) &= (f_j - f_i) \nabla B_j(\mathbf{u}) + (f_k - f_i) \nabla B_k(\mathbf{u}) \\ \end{aligned} $$

xer-rex Aug 22 2020 at 14:42

Une zone est constituée de 2 composantes, le gradient normalisé de la base_i donne le taux constant dans la direction d'une des composantes qui ne dépend que des sommets.

La formule en surbrillance est l'état intermédiaire de transformation de la fonction utilise pleinement les sommets.