Plan - imagi,j,k sommets de parall`el´epip`edes/cubes = pav´es D´ecomposition de chaque pav´e en...

Preview:

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

Recommended