Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Plan
5 Visualisation - courbes/surfaces isovaleurPresentationCourbes isovaleurDonnees volumiquesSurfaces isovaleur
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 40 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Principe
Donnees quelconques : Xi = (xi , yi , zi);Fi
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 41 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Principe
Donnees quelconques : Xi = (xi , yi , zi);FiTrouver une surface isovaleur
Sv = {X ∈ R3,F (X ) = v}
ou F est un interpolant des donnees.
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 41 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Principe
Donnees quelconques : Xi = (xi , yi , zi);FiTrouver une surface isovaleur
Sv = {X ∈ R3,F (X ) = v}
ou F est un interpolant des donnees.
Equivalent 3D des courbes isovaleur→ methodes similaires
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 41 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Principe
Donnees quelconques : Xi = (xi , yi , zi);FiTrouver une surface isovaleur
Sv = {X ∈ R3,F (X ) = v}
ou F est un interpolant des donnees.
Equivalent 3D des courbes isovaleur→ methodes similairesXi = (xi , yi , zi) ∈ R
3 + Fi ∈ R ≡ Pi = (xi , yi , zi ,Fi) ∈ R4
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 41 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Principe
Donnees quelconques : Xi = (xi , yi , zi);FiTrouver une surface isovaleur
Sv = {X ∈ R3,F (X ) = v}
ou F est un interpolant des donnees.
Equivalent 3D des courbes isovaleur→ methodes similairesXi = (xi , yi , zi) ∈ R
3 + Fi ∈ R ≡ Pi = (xi , yi , zi ,Fi) ∈ R4
Sv ≡ {(x , y , z ,w) ∈ R4, F (x , y , z) = w}
︸ ︷︷ ︸
hypersurface de R4
∩{(x , y , z ,w) ∈ R4, w = v}
︸ ︷︷ ︸
hyperplan de R4
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 41 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Exemples d’application
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 42 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Exemples d’application
representation de surface impliciteexemple de la sphere {(x , y , z),F (x , y , z) = x2 + y2 + z2 − R2 = 0}
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 42 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Exemples d’application
representation de surface impliciteexemple de la sphere {(x , y , z),F (x , y , z) = x2 + y2 + z2 − R2 = 0}
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 42 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Exemples d’application
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 43 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Exemples d’application
image medicale - extraction du volume d’un organe specifique a partir decoupes issues d’un examen radiologiques (IRM, ...)
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 43 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Exemples d’application
image medicale - extraction du volume d’un organe specifique a partir decoupes issues d’un examen radiologiques (IRM, ...)
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 43 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Algorithme de calcul de surfaces isovaleur
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 44 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Algorithme de calcul de surfaces isovaleur
Donnees : grille reguliere uniforme– points Pi ,j ,k = (xi = x0 + i∆x , yj = y0 + j∆y , zk = z0 + k∆z)– valeurs associees Fi ,j ,kavec 1 ≤ i ≤ M, 1 ≤ j ≤ N, 1 ≤ k ≤ P
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 44 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Algorithme de calcul de surfaces isovaleur
Donnees : grille reguliere uniforme– points Pi ,j ,k = (xi = x0 + i∆x , yj = y0 + j∆y , zk = z0 + k∆z)– valeurs associees Fi ,j ,kavec 1 ≤ i ≤ M, 1 ≤ j ≤ N, 1 ≤ k ≤ P
1) Decouper la grille en tetraedres (tetraedrisation prealable)
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 44 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Algorithme de calcul de surfaces isovaleur
Donnees : grille reguliere uniforme– points Pi ,j ,k = (xi = x0 + i∆x , yj = y0 + j∆y , zk = z0 + k∆z)– valeurs associees Fi ,j ,kavec 1 ≤ i ≤ M, 1 ≤ j ≤ N, 1 ≤ k ≤ P
1) Decouper la grille en tetraedres (tetraedrisation prealable)
2) Traiter la sequence de tetraedres pour obtenir une surface formee detriangles.
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 44 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealable
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 45 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealable
donnees Xi ,j ,k = (xi , yj , zk) + Fi ,j ,k,points disposes suivant une grille reguliere uniforme
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 45 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealable
donnees Xi ,j ,k = (xi , yj , zk) + Fi ,j ,k,points disposes suivant une grille reguliere uniforme
Xi ,j ,k sommets de parallelepipedes/cubes = paves
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 45 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealable
donnees Xi ,j ,k = (xi , yj , zk) + Fi ,j ,k,points disposes suivant une grille reguliere uniforme
Xi ,j ,k sommets de parallelepipedes/cubes = paves
Decomposition de chaque pave en un ensemble de tetraedres avec unecoherence entre paves adjacents
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 45 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Pave Pi ,j ,k = [xi , xi+1]× [yj , yj+1]× [zk , zk+1]
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 46 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Pave Pi ,j ,k = [xi , xi+1]× [yj , yj+1]× [zk , zk+1]
8 sommets :A = Xi ,j ,k
B = Xi ,j ,k+1
C = Xi ,j+1,k
D = Xi ,j+1,k+1
E = Xi+1,j ,k
F = Xi+1,j ,k+1
G = Xi+1,j+1,k
H = Xi+1,j+1,k+1
C
B
F
G H
A
E
D
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 46 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Pave Pi ,j ,k = [xi , xi+1]× [yj , yj+1]× [zk , zk+1]
8 sommets :A = Xi ,j ,k
B = Xi ,j ,k+1
C = Xi ,j+1,k
D = Xi ,j+1,k+1
E = Xi+1,j ,k
F = Xi+1,j ,k+1
G = Xi+1,j+1,k
H = Xi+1,j+1,k+1
C
B
F
G H
A
E
D
→ plusieurs possibilites pour decouper un hexaedre en tetraedres
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 46 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
C
B
F
G H
A
E
D
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
C
B
F
G H
A
E
D C
B
F
G H
A
E
D
→ 6 tetraedres :
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
C
B
F
G H
A
E
D C
B
F
G H
A
E
D
→ 6 tetraedres : [CDEG ]
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
C
B
F
G H
A
E
D C
B
F
G H
A
E
D
→ 6 tetraedres : [CDEG ] - [DFGH]
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
C
B
F
G H
A
E
D C
B
F
G H
A
E
D
→ 6 tetraedres : [CDEG ] - [DFGH] - [DEFG ]
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
C
B
F
G H
A
E
D C
B
F
G H
A
E
D
→ 6 tetraedres : [CDEG ] - [DFGH] - [DEFG ] - [BCDE ]
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
C
B
F
G H
A
E
D C
B
F
G H
A
E
D
→ 6 tetraedres : [CDEG ] - [DFGH] - [DEFG ] - [BCDE ] - [BDEF ]
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
C
B
F
G H
A
E
D C
B
F
G H
A
E
D
→ 6 tetraedres : [CDEG ] - [DFGH] - [DEFG ] - [BCDE ] - [BDEF ] -[ABCE ]
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
C
B
F
G H
A
E
D
→ 6 tetraedres : [CDEG ] - [DFGH] - [DEFG ] - [BCDE ] - [BDEF ] -[ABCE ]Inconvenient : decomposition non minimale (en nb de tetraedres)
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
→ 6 tetraedres : [CDEG ] - [DFGH] - [DEFG ] - [BCDE ] - [BDEF ] -[ABCE ]Inconvenient : decomposition non minimale (en nb de tetraedres)Avantage : bon raccord des tetraedres issus d’hexaedres voisins
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Tetraedrisation prealableLe probleme de decomposition d’un pave
Decomposition en 6 tetraedres
→ 6 tetraedres : [CDEG ] - [DFGH] - [DEFG ] - [BCDE ] - [BDEF ] -[ABCE ]Inconvenient : decomposition non minimale (en nb de tetraedres)Avantage : bon raccord des tetraedres issus d’hexaedres voisins
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 47 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
Extraction d’une surface isovaleur dans une tetraedrisationMethode similaire a l’algorithme d’extraction de courbe isovaleur dans unetriangulation.
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 48 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
Extraction d’une surface isovaleur dans une tetraedrisationMethode similaire a l’algorithme d’extraction de courbe isovaleur dans unetriangulation.
Donnees : Tetraedrisation T avec
sommets Pi = (xi , yi , zi ) et donnees scalaires associees Fi
tetraedres Tk = [k1, k2, k3, k4] (kj indices des sommets)
+ valeur reelle v
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 48 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
Extraction d’une surface isovaleur dans une tetraedrisationMethode similaire a l’algorithme d’extraction de courbe isovaleur dans unetriangulation.
Donnees : Tetraedrisation T avec
sommets Pi = (xi , yi , zi ) et donnees scalaires associees Fi
tetraedres Tk = [k1, k2, k3, k4] (kj indices des sommets)
+ valeur reelle v
Resultat : Surface S sous forme d’un ensemble de triangles
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 48 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 49 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
1 parcourir l’ensemble des tetraedreset pour chaque tetraedre :
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 49 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
1 parcourir l’ensemble des tetraedreset pour chaque tetraedre :
tester s’il intersecte la surface isovaleur (deux sommets de signedifferents)
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 49 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
1 parcourir l’ensemble des tetraedreset pour chaque tetraedre :
tester s’il intersecte la surface isovaleur (deux sommets de signedifferents)si oui, calculer l’intersection entre le tetraedre et la surface isovaleursous forme de triangle(s)
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 49 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
1 parcourir l’ensemble des tetraedreset pour chaque tetraedre :
tester s’il intersecte la surface isovaleur (deux sommets de signedifferents)si oui, calculer l’intersection entre le tetraedre et la surface isovaleursous forme de triangle(s)
2 → liste de triangles ≡ surface isovaleur
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 49 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 50 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
Tetraedre T = [S1,S2,S3,S4] avec valeur Fi associee a Si
S2 S3
S4
S1
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 50 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
Tetraedre T = [S1,S2,S3,S4] avec valeur Fi associee a Si
S2 S3
S4
S1
chaque sommet Si : si Fi > v si Fi ≤ v
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 50 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
Tetraedre T = [S1,S2,S3,S4] avec valeur Fi associee a Si
S2 S3
S4
S1
chaque sommet Si : si Fi > v si Fi ≤ v→ 16 configurations possibles
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 50 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre - 16 configurations possibles
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 51 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre - 16 configurations possibles
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 51 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre - 16 configurations possibles
2 config. avec 4 sommets de meme signe
8 config. avec 1 sommet de signe different des trois autres
6 config. avec 2 sommets d’un signe et 2 sommets de l’autre
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 51 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 52 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets de meme signe
C
D
A
B
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 52 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets de meme signe
C
D
A
B
→ pas d’intersection avec la surface isovaleur
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 52 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 53 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommet A de signe different des sommets B,C et D
C
D
A
B
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 53 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommet A de signe different des sommets B,C et D
C
D
A
B
I
K
J
→ intersection des 3 aretes [A,B ], [A,C ] et [A,D] avec la surface isovaleur
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 53 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommet A de signe different des sommets B,C et D
C
D
A
B
I
K
J
→ intersection des 3 aretes [A,B ], [A,C ] et [A,D] avec la surface isovaleur→ un triangle [I , J,K ]
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 53 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommet A de signe different des sommets B,C et D
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 54 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommet A de signe different des sommets B,C et D
8 configurations → 4 cas :
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 54 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommet A de signe different des sommets B,C et D
8 configurations → 4 cas :
sommet S1 de signe different des sommets S2,S3 et S4
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 54 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommet A de signe different des sommets B,C et D
8 configurations → 4 cas :
sommet S1 de signe different des sommets S2,S3 et S4
sommet S2 de signe different des sommets S3,S4 et S1
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 54 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommet A de signe different des sommets B,C et D
8 configurations → 4 cas :
sommet S1 de signe different des sommets S2,S3 et S4
sommet S2 de signe different des sommets S3,S4 et S1
sommet S3 de signe different des sommets S4,S1 et S2
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 54 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommet A de signe different des sommets B,C et D
8 configurations → 4 cas :
sommet S1 de signe different des sommets S2,S3 et S4
sommet S2 de signe different des sommets S3,S4 et S1
sommet S3 de signe different des sommets S4,S1 et S2
sommet S4 de signe different des sommets S1,S2 et S3
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 54 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 55 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets A, C d’un signe et sommets B, D de l’autre signe
C
D
A
B C
D
A
B
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 55 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets A, C d’un signe et sommets B, D de l’autre signe
C
D
A
B
J
I
KL
C
D
A
B
J
I
KL
→ intersection des 4 aretes [A,B ], [A,D], [C ,B ] et [C ,D] avec la surfaceisovaleur
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 55 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets A, C d’un signe et sommets B, D de l’autre signe
C
D
A
B
J
I
KL
C
D
A
B
J
I
KL
→ intersection des 4 aretes [A,B ], [A,D], [C ,B ] et [C ,D] avec la surfaceisovaleur→ OU deux triangles [I , J,K ] et [L, J,K ]
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 55 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets A, C d’un signe et sommets B, D de l’autre signe
C
D
A
B
J
I
KL
C
D
A
B
J
I
KL
→ intersection des 4 aretes [A,B ], [A,D], [C ,B ] et [C ,D] avec la surfaceisovaleur→ OU deux triangles [I , J,K ] et [L, J,K ]→ OU deux triangles [I , J, L] et [I ,K , L]
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 55 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets A, C d’un signe et sommets B, D de l’autre signe
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 56 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets A, C d’un signe et sommets B, D de l’autre signe
3 configurations → 3 cas :
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 56 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets A, C d’un signe et sommets B, D de l’autre signe
3 configurations → 3 cas :
sommets S1, S2 d’un signe et sommets S3, S4 de l’autre signe
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 56 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets A, C d’un signe et sommets B, D de l’autre signe
3 configurations → 3 cas :
sommets S1, S2 d’un signe et sommets S3, S4 de l’autre signe
sommets S1, S3 d’un signe et sommets S2, S4 de l’autre signe
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 56 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme - traitement d’un tetraedre
sommets A, C d’un signe et sommets B, D de l’autre signe
3 configurations → 3 cas :
sommets S1, S2 d’un signe et sommets S3, S4 de l’autre signe
sommets S1, S3 d’un signe et sommets S2, S4 de l’autre signe
sommets S1, S4 d’un signe et sommets S2, S3 de l’autre signe
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 56 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 57 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
Donnees :
tetraedrisation T avec sommets Sk et valeurs associees Fk
valeur v
fonction I = intersection arete hyperplan(P ,Q,FP,FQ ,v)// calcul du point I, intersection de l’arete [P ,Q]// avec la surface isovaleur Sv// FP : valeur associee au sommet P// FQ : valeur associee au sommet Qλ ← (v − FP)/(FQ − FP)I ← (1− λ) P + λ Q
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 57 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
Donnees :
tetraedrisation T avec sommets Sk et valeurs associees Fk
valeur v
fonction I = intersection arete hyperplan(P ,Q,FP,FQ ,v)// calcul du point I, intersection de l’arete [P ,Q]// avec la surface isovaleur Sv// FP : valeur associee au sommet P// FQ : valeur associee au sommet Qλ ← (v − FP)/(FQ − FP)I ← (1− λ) P + λ Q
Resultat :
surface isovaleur S (sequence de triangles)
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 57 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
fonction m = marque(P ,F ,v)
// calcul de la marque du sommet P de valeur associee Fsi F < v alorsm ← 0
sinonm ← 1
fin si
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 58 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
Calcul de la surface isovaleur S
// Initialisation de SS ← Ø
// Parcours des tetraedrespour tout tetraedre T de T fairetraitement tetraedre(T )
fin pour
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 59 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
procedure traitement tetraedre(T )
// les quatres sommets de T, leurs valeurs et marquesS1 ← sommet1(T ), F1 ← valeur1(T )S2 ← sommet2(T ), F2 ← valeur2(T )S3 ← sommet3(T ), F3 ← valeur3(T )S4 ← sommet4(T ), F4 ← valeur4(T )m1 ← marque(S1,F1,v)m2 ← marque(S2,F2,v)m3 ← marque(S3,F3,v)m4 ← marque(S4,F4,v)
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 60 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
procedure traitement tetraedre(T ) // suite
// cas marque de S1 differente des marques de S2, S3, S4si m1 6= m2 et m1 6= m3 et m1 6= m4 alors// calcul des trois intersectionsI ← intersection arete hyperplan(S1,S2,F1,F2,v)J ← intersection arete hyperplan(S1,S3,F1,F3,v)K ← intersection arete hyperplan(S1,S4,F1,F4,v)
S ← S ∪ {[I , J,K ]} // ajouter [I , J,K ] a Sfin si
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 61 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
procedure traitement tetraedre(T ) // suite
// cas marque de S2 differente des marques de S3, S4, S1si m2 6= m3 et m2 6= m4 et m2 6= m1 alors// calcul des trois intersectionsI ← intersection arete hyperplan(S2,S3,F2,F3,v)J ← intersection arete hyperplan(S2,S4,F2,F4,v)K ← intersection arete hyperplan(S2,S1,F2,F1,v)
S ← S ∪ {[I , J,K ]} // ajouter [I , J,K ] a Sfin si
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 62 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
procedure traitement tetraedre(T ) // suite
// cas marque de S3 differente des marques de S4, S1, S2si m3 6= m4 et m3 6= m1 et m3 6= m2 alors// calcul des trois intersectionsI ← intersection arete hyperplan(S3,S4,F3,F4,v)J ← intersection arete hyperplan(S3,S1,F3,F1,v)K ← intersection arete hyperplan(S3,S2,F3,F2,v)
S ← S ∪ {[I , J,K ]} // ajouter [I , J,K ] a Sfin si
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 63 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
procedure traitement tetraedre(T ) // suite
// cas marque de S4 differente des marques de S1, S2, S3si m4 6= m1 et m4 6= m2 et m4 6= m3 alors// calcul des trois intersectionsI ← intersection arete hyperplan(S4,S1,F4,F1,v)J ← intersection arete hyperplan(S4,S2,F4,F2,v)K ← intersection arete hyperplan(S4,S3,F4,F3,v)
S ← S ∪ {[I , J,K ]} // ajouter [I , J,K ] a Sfin si
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 64 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
procedure traitement tetraedre(T ) // suite
// cas marques de S1 et S2 differentes des marques de S3 et S4si m1 = m2 et m2 6= m3 et m3 = m4 alors// calcul des quatre intersectionsI ← intersection arete hyperplan(S1,S3,F1,F3,v)J ← intersection arete hyperplan(S1,S4,F1,F4,v)K ← intersection arete hyperplan(S2,S3,F2,F3,v)L ← intersection arete hyperplan(S2,S4,F2,F4,v)
S ← S ∪ {[I , J,K ]} // ajouter [I , J,K ] a SS ← S ∪ {[L, J,K ]} // ajouter [L, J,K ] a S
fin si
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 65 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
procedure traitement tetraedre(T ) // suite et fin
// cas marques de S1 et S3 differentes des marques de S2 et S4si m1 = m3 et m3 6= m2 et m2 = m4 alors// calcul des quatre intersectionsI ← intersection arete hyperplan(S1,S2,F1,F2,v)J ← intersection arete hyperplan(S1,S4,F1,F4,v)K ← intersection arete hyperplan(S3,S2,F3,F2,v)L ← intersection arete hyperplan(S3,S4,F3,F4,v)
S ← S ∪ {[I , J,K ]} // ajouter [I , J,K ] a SS ← S ∪ {[L, J,K ]} // ajouter [L, J,K ] a S
fin si
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 66 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Calcul de surfaces isovaleurAlgorithme
Routine traitement tetraedre(T ) // suite et fin
// cas marques de S1 et S4 differentes des marques de S2 et S3si m1 = m4 et m4 6= m2 et m2 = m3 alors// calcul des quatre intersectionsI ← intersection arete hyperplan(S1,S2,F1,F2,v)J ← intersection arete hyperplan(S1,S3,F1,F3,v)K ← intersection arete hyperplan(S4,S2,F4,F2,v)L ← intersection arete hyperplan(S4,S3,F4,F3,v)
S ← S ∪ {[I , J,K ]} // ajouter [I , J,K ] a SS ← S ∪ {[L, J,K ]} // ajouter [L, J,K ] a S
fin si
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 67 / 68
Visualisation - courbes/surfaces isovaleur Surfaces isovaleur
Nicolas SZAFRAN (UGA - UFR IM2AG) L3 Info - Image 2016/2017 68 / 68