Vous êtes sur la page 1sur 16

Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

Enseignement : EC833 M1 E3A RVSI RI Synthse dimages


Objectif : Ce module se situe dans le parcours ralit virtuelle du master 1 GEII et RVSI.
Il est constitu de deux parties. La premire prsente les principales techniques de
modlisation 2D et 3D de scnes virtuelles. La seconde traite des mthodes de rendu raliste
de scnes virtuelles.
Avertissement : Ce cours suppose la connaissance et la matrise dun langage de
programmation volu (C, C++, JAVA)

SOMMAIRE
Bibliographie Gnrale: ............................................................................................................................................. 2
PARTIE A : MODELISATION INFORMATIQUE ................................................................................................. 2
Introduction ................................................................................................................................................................ 2
I - La modlisation bidimensionnelle - Quadtree ....................................................................................................... 3
I.1 Dfinition .......................................................................................................................................................... 3
I.2 Exemple ............................................................................................................................................................ 3
I.3 Structures de donnes (1), (2) ........................................................................................................................... 4
I.4 Oprations sur quadtree .................................................................................................................................... 5
II. - La modlisation tridimensionnelle ...................................................................................................................... 6
II.1. Introduction ................................................................................................................................................ 6
II.2. Les modles ................................................................................................................................................ 6
II.3. Les conversions de modles ..................................................................................................................... 11
II.4. Les modeleurs .......................................................................................................................................... 12
Bibliographie : .......................................................................................................................................................... 15

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


1
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

Bibliographie Gnrale:
[1] B. PEROCHE, D. GHAZANFARPOUR, J. ARJENCE, D.MICHELUCCI "La synthse d'images" HERMES
1990
[2] FOLEY and VAN DAM
Computer graphics, Principles &Practice
ADDISON-WESLAY PUBLISHING COMPANY 1990

[3] F.P. Preparata, M. I. Shamos, Computational geometry : an introduction , Springer- Verlag, 1985

PARTIE A : MODELISATION INFORMATIQUE

Introduction
Lalgorithmique graphique ou synthse dimages est ne peu de temps aprs linformatique. Les premiers
algorithmes et logiciels datent de 1963 (algorithme dlimination des lignes caches de L.G. Roberts - logiciel
SKETCHPAD de I.E. Sutherland).
Pourtant aujourdhui, cette discipline occupe encore de nombreux chercheurs. Cest dire la complexit du
problme pos : fabriquer des images, le plus proche de la ralit, ou plutt faut-il dire, de la vision humaine.
Le but de ce document est de rsumer les principales techniques utilises dans la synthse dimages et de
proposer les principales rfrences pour une tude approfondie.
Le processus menant limage de synthse se dcompose en trois parties. La premire est la construction du
modle reprsentant lunivers visualiser. La seconde essentiellement algorithmique, est celle de lintroduction
dun observateur et du calcul des parties visibles du modle. La troisime prcise les mcanismes de la vision en
fonction de lclairage.
Avant daborder les diffrents chapitres, la figure illustre les structures de donnes ncessaires aux diffrentes
transformations de limage .

Segmentation/Rgionnement
Pictogramme
"bitmap" Trac

Traitement d'image Vectogramme


Donnes
Visualisation
Lissage
Compression
Structure de donnes
3D Acquisition de formes
Modlisation

Figure intro. : Transformations de limage

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


2
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

I - La modlisation bidimensionnelle - Quadtree

I.1 Dfinition
Le quadtree, ou arbre quaternaire, est utlilis pour reprsenter informatiquement des objets 2D. A lespace
considr est superpose une grille constitue de 2**q x 2**q cellules (q entier positif, reprsentant la
profondeur de larbre).
Les feuilles de larbre reprsentent des parties homognes(remplies/vides) de lespace modlis et les nuds
reprsentent des parties mixtes (partiellement remplies/vides).

I.2 Exemple
Dans cet exemple, est reprsent le quadtree correspondant un polygone constitus par une liste de points
coplanaires, le premier point tant reli au dernier, et une liste dartes reliant les points entre eux Les nuds du
quadree sont diviss en 3 classes :
. nud intrieur (feuille) : reprsente les points intrieurs au polygone(symbolis par un carr noir),
. nud extrieur (feuille) : reprsente les points nappartenant pas au polygone (symbolis par un carr blanc),
. nud frontire : reprsentent les cellules de la grille qui intersectent la frontire du polygone.

Figure I.1 : Quadtree

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


3
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

I.3 Structures de donnes (1), (2)


. Linaire statique
Larbre est reprsent sous forme de tableau linaire. Ci-dessous un exemple destructure reprsentant un
nud/feuille de larbre :
struct t_nud
int couleur ;

Exo. : calculer la place mmoire occup par larbre de lexemple I.2.
Cette structure de donnes est valable pour la visualisation de la scne. Si un usinage dune pice mcanique, par
exemple est ncessaire, une allocation dynamique des donnes est prfrable.

. Structure chaine de tableau 1D


Larbre est reprsent cette fois-ci par des tableaux une dimension chains entre eux. Chaque tableau est
constitu de 4 entres correspondantes 4 fils. Chaque fils pointant sur sa descendance.

struct t_freres
struct t_freres *fils ;
int couleur ;
freres[4]
Exo. : calculer la place mmoire occup par larbre de lexemple I.2.

. Structure chaine de tableaux 2D (1 4)


Lide de cette structure est de faire pointer chaque gnration sur sa descendance directe :
Struct freres
struct generation *ptr;
int couleur[4];

Struct generation
struct freres T[4] ;

Exo. : calculer la place mmoire occup par larbre de lexemple I.2.

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


4
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

I.4 Oprations sur quadtree


Soient 3 quadtrees de mme dimension q1, q2, et q3 , chaque nud n de ces quadtree peut prendre 3 valeurs ,
n := (N/B/G). N(noir) correspond un nud intrieur, B(blanc) correspond un nud extrieur et G(gris)
correspond un nud frontire.
Les algorithmes suivants effectuent une opration logique sur q1, q2 et stockent le rsultat dans q3.
. Union de 2 quadtrees
si n(q1) = N , n(q2) alors n(q3) := N
si n(q2) = N , n(q1) alors n(q3) := N
si n(q1) = B , n(q2) alors n(q3) := n(q2)
si n(q2) = B , n(q1) alors n(q3) := n(q1)
si n(q1)=n(q2)=G alors parcourir

. Intersection de 2 quadtrees
si n(q1) = N , n(q2) alors n(q3) := n(q2)
si n(q2) = N , n(q1) alors n(q3) := n(q1)
si n(q1) = B , n(q2) alors n(q3) := B
si n(q2) = B , n(q1) alors n(q3) := B
si n(q1)=n(q2)=G alors parcourir

Travail dirig 1

Exercice 1 : oprations boolennes sur les quadtrees

Ecrire lalgorithme qui ralise un OU-EXCLUSIF entre deux quadtrees q1, q2 et place le rsultat dans q1. Les
fentres associes aux nuds racines des deux quadtrees sont supposes identiques.

Vous disposez des fonctions suivantes :


Fonctions dinterrogations Fonctions de construction

Interrogation ou positionnement du nud racine dun quadtree


inq_racine(q : quadtree) : nud set_racine(q : quadtree, n : nud) : (OK, ERREUR)

Interrogation ou positionnement des fils dun nud


(no : nord-ouest , ne : nord-est , so : sud-ouest , se : sud-est)

inq_no(n : nud) : nud set_no(n, no : nud) : (OK, ERREUR)


inq_ne(n : nud) : nud set_ne(n, ne : nud) : (OK, ERREUR)
inq_so(n : nud) : nud set_so(n, so : nud) : (OK, ERREUR)
inq_se(n : nud) : nud set_se(n, se : nud) : (OK, ERREUR)

Interrogation ou positionnement de la couleur dun nud


(N : Noir , B : Blanc , G : Gris)
inq_couleur(n : nud) : (N, B, G) set_couleur(n : nud, c : (N,B,G)) : (OK, ERREUR)

On suppose galement qu'il existe une fonction :


Inverse(n:nud):nud qui inverse la couleur d'un nud.

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


5
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

II. - La modlisation tridimensionnelle


II.1. Introduction

La premire tape du processus de cration dimages de synthse est la modlisation. Elle dfinit les structures
de donnes utilises par les algorithmes dlimination des parties caches, dombrage et dclairage.
Ce chapitre se limite ltude des reprsentations dobjets solides. Un objet solide est rigide, sa forme est
invariante par des transformations affines telles que la rotation ou la translation. Il est tridimensionnel, possde
un intrieur et sa frontire ne contient pas dartes ou de faces pendantes. Il est fini et forme une partie borne de
3 . Les principaux critres de validit dun modle sont lunicit et la non- ambigut. Tout modle runit ces
deux conditions sil ralise une bijection entre lensemble des solides reprsentables et limage quil donne de
cet ensemble (1).
Nous aborderons successivement les diffrents modles existants, les conversions qui leur sont associes et enfin
les oprateurs ou modeleurs permettant leur construction.

II.2. Les modles

II.2.1. Le modle fil de fer

Historiquement cest le premier modle. Les objets sont reprsents sous la forme dune suite de segments 3D
dfinis par les coordonnes (x,y,z) de leurs extrmits.
Ce modle simple ne demande pas une grande puissance de calcul et peut tre implant dans un espace mmoire
restreint. Particulirement adapt pour les applications en temps rel, il gnre toutefois de fcheuses ambiguts
:
il ne distingue pas le plein du vide (figure 1)
il nassure pas les critres que doivent vrifier les objets solides (cf.II.1.)
il ne permet pas les calculs gomtriques (volume, masse,...) et llimination des parties caches.

Il est, essentiellement, utilis pour la visualisation.

Figure II.1 : Ambigut de la reprsentation fil de fer

II.2.2. Le modle surfacique

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


6
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

Ce modle permet de distinguer lintrieur de lextrieur donc le plein du vide. Lobjet est dans ce cas reprsent
par un ensemble de facettes. Chaque facette est dfinie par son contour qui est une suite ordonne de segments
3D. Le modle surfacique peut gnrer des objets non cohrents avec des facettes pendantes. Il est nanmoins
utilis, pour des raisons historiques, par la plupart des algorithmes dlimination des parties caches.

II.2.3. Le modle arbre de construction (CSG)

Cest la reprsentation la plus utilise par les logiciels de CAO. Lobjet est modlis sous la forme dun arbre
binaire o les feuilles sont des volumes lmentaire (boite, sphre, cylindre, ...) et les nuds sont des oprations

boolennes rgulires ( , , ) (figure 2).

Figure II.2 : la reprsentation CSG

Pour respecter les critres dfinis sur les objets solides, on impose la rgularit des oprations boolennes.
Ainsi :

A B = r(A B), A B = r(A B),A B = r(A B)

o r est lapplication qui associe un sous-ensemble de 3 ladhrence de son intrieur.


En dautres termes, les oprations boolennes rgulires sont des lois de composition interne sur lensemble des
objets solides (figure 3).

Figure II.3 : oprations rgulires

La modlisation par arbre de construction se ralise simplement; elle est gnralement trs conviviale. Si les
oprations boolennes sont rgulires, les objets gnrs sont cohrents. Les calculs gomtriques sont par
contre difficilement ralisable et lunicit de la reprsentation nest pas assure (figure 2).

II.2.4. Le modle octree

Un octree est un arbre huit branches. Les nuds de larbre sont des cubes inclus dans lespace de modlisation.
Le nud racine est lespace lui-mme et ses huit fils sont des cubes de mme volume qui le divise (figure 4).

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


7
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

O E

S
HNO HNE HSO HSE BNO BNE BSO BSE
B 1 2 3 4 5 6 7 8

Les noeuds sont ordonns du Haut vers le Bas, du Nord vers le Sud
et de l'Ouest vers l' Est
Figure II.4 : Octree

Une feuille de larbre est dite blanche (B) resp. noire (N) si le cube qui lui correspond est lextrieur de lobjet
(resp. lintrieur). Les nuds internes ont la couleur grise (G) et possdent huit fils.
Modliser un objet sous forme doctree consiste donc divise rcursivement lespace en huit parties gales.
Lorsque ncessaire, la division se poursuit jusqu une taille de cube e,pralablement dfinie.
H

O E

Objet (o)
Arbre (A)

Informatiquement, un octet n'est pas reprsent sous la forme d'un arbre


mais par une liste. La liste de l'arbre A est :

G (N G(B G B B B N B B) N B N N N N)

Figure II.5 : la modlisation par octree

La modlisation par octree gnre des objets cohrents. Elle est unique et non- ambigue. Elle permet deffectuer
trs simplement tous les calculs gomtriques ainsi que les oprations boolennes entre les objets. Certains
algorithmes dlimination de parties caches peuvent lui tre appliqus.

II.2.5. Le modle de reprsentation par frontires (BREP)

II.2.5.1 Dfinition :
Cette reprsentation dcrit explicitement la frontire de lobjet. La structure de donnes qui lui est associe est de
type listes de faces/artes/sommets . Plusieurs organisations des donnes sont possibles ; la Winged-Edge (3) ou
Double Edge List (4) est la plus approprie..
La structure Winged-Edge (figure 6)sous sa forme simplifie dfinit un solide ou un polydre (P) comme tant
un ensemble de faces. Une face (F) est une suite oriente dartes. Une arte (A) est un couple de sommets. Un
sommet (S) est un triplet (x,y,z) de coordonnes.

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


8
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

Figure II.6 : la structure Winged edge

La structure Winged-Edge permet dobtenir toutes les informations gomtriques quelque soit lentit
considre: coordonnes de sommets, quation des artes, quation du plan support des faces. Elle fournit toutes
les relations topologiques soit: les contours (C ), les incidences (I), les adjacences (A), des entits S, A, F, P
(figure 7).
Soient :
0-face : sommet ; 1-face: arte ; 2-face : face ; 3-face : polydre
C(Contour): k-face ((k-1)-face) avec k>0,
I(Incidence): k-face ((k+1)-face),
A(Adjacence): k-face (k-face)

Figure II.7 : les relations topologiques de la structure Winged edge

II.2.5.2 Structures de donnes et oprateurs


.Structure de donnes classique :

Ci-dessous un exemple de structure de donnes classique utilise dans le cadre de la reprsentation par
frontires :

struct t_polyedre
struct t_face *f ;
struct t_arete *a ;
struct t_sommet *s ;

struct t_face
struct t_contour *c ;
struct t_face *suiv ;

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


9
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

struct t_contour
struct t_arete *a ;
struct t_contour *suiv;

struct t_arete
struct t_sommet *o, *e ;
struct t_arete *suiv;

struct t_sommet
double x, y,z ;
struct t_sommet *suiv;

Travail dirig 2
Exercice 2 : - Ecrire les programmes en C correspondants aux oprateurs C(f) , I(s) , A(a) .
- Dterminer la complexit en temps dexcution de ces programmes.
- Dterminer la complexit en temps dexcution des autres oprateurs.
On suppose qu'il existe une variable globale p de type pointeur sur un polydre.
. Structure de donnes pour Winged Edge
struct t_polyedre
struct t_face *f;

struct t_face
struct t_arete *a;
struct t_face *suiv ;

struct t_arete
struct t_face *fdir, *find;
struct t_arete *asfd, *asfi;
struct t_sommet *o, *e;

struct t_sommet
double x, y,z ;
struct t_arete *a;

Travail dirig 2 bis
Exercice 3 : - Ecrire les programmes en C correspondants aux oprateurs C(f) , I(s) , A(a) .
- Dterminer la complexit en temps dexcution de ces programmes.
- Dterminer la complexit en temps dexcution des autres oprateurs.

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


10
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

II.2.5.3 La relation dEuler :


Cette relation est une condition ncessaire et non suffisante pour vrifier la rgularit d'un polydre.

S-A+F=2 (valable pour des polydres rgulier sans trous)


S-A+F-H=2(C-G)
o :
S est le nombre de sommets, A dartes , F de faces , H douvertures , C de composantes connexes et G de
conduits.
La condition suffisante pourqu'un polydre soit rgulier est qu'il doit tre 2-manifold(A tout point du polydre
est associ un voisinage de points contenus dans un disque unique).
Lorsque ces relations sont vrifies par une structure Winged-Edge, elles assurent la cohrence topologique des
objets. La reprsentation par frontire est thoriquement unique et non ambigue, dans la pratique, des
problmes de prcision numrique mettent en dfaut ces qualits. Les Brep sont bien adaptes au calcul
gomtrique et llimination des parties caches. Les oprations boolennes sont applicables. Certains
modeleurs gnrent directement une reprsentation par frontire.
La figure qui suit rsume les avantages et les inconvnients des diffrents modles.

Figure II.8 : Comparaison des mthodes de reprsentation des solides

II.3. Les conversions de modles

La figure 8 montre clairement la ncessit de faire cohabiter plusieurs modles dans un mme logiciel de CAO.
Cette cohabitation implique lexistence dalgorithmes de conversion entre les diffrents modles.
Gnrer une reprsentation surfacique ou Fil de Fer partir des modles volumiques est relativement ais.
Linverse na pas dintrt puisque les reprsentations non volumiques peuvent tre incohrentes.
Pour obtenir la modlisation par frontire dun arbre CGS, il faut calculer les surfaces des feuilles de larbre et
effectuer les oprations boolennes des nuds. Ce traitement long et dlicat est conditionn par les problmes de
prcisions numriques (5). Suivant le mme principe, loctree dun arbre CSG se dtermine en construisant les

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


11
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

octrees des feuilles de larbre et en effectuant sur ces derniers les oprations boolennes des nuds. Les
oprations boolennes entre octrees seffectuent directement sur les arbres, lalgorithme de conversion est rapide
et efficace.
Des techniques de conversion doctree en B-rep et inversement ont t publis (6), (7).
Un octree peut toujours tre considr comme un arbre CSG o les feuilles sont des arbres NOIR et les nuds
des oprations *.
Il nexiste pas actuellement de mthodes efficaces de conversion B-rep en arbre CSG. Le problme dans ce cas
sapparente plus la reconnaissance des formes qu la CAO.

II.4. Les modeleurs

II.4.1. Les modeleurs 2D,3D

Il sagit doprateurs gnrant un schma tridimensionnel partir des entits dfinies dans un espace 2D.
On peut citer llvateur de plan qui, partir de plusieurs vues 2D (vue de face, de dessus et de ct), construit
lobjet tridimensionnel. La modlisation obtenue est soit fil de fer soit surfacique donc ambigue.
Un autre oprateur 2D, 3D est le modeleur par dplacement ou balayage. Lobjet 3D est gnr par une
composition de translation, de rotation et homothtie dun contour 2D. Le modle construit peut tre soit
surfacique soit plus difficilement une reprsentation par frontire (figure 9).

Figure II.9 : Reprsentation dobjet 3D par balayage dun contour de base

II.4.2. Les modeleurs 3D, 3D

Le plus utilis est certainement le modeleur CSG qui, bien entendu, engendre une reprsentation par arbre de
construction.
Dun point de vue formel, ce modeleur se compose dun ensemble doprations boolennes rgulires
, , (cf. II.2.3.), dun ensemble de volumes lmentaires (les feuilles de larbre) et dun ensemble de
transformations gomtriques, affines, permettant le positionnement des volumes dans lespace de modlisation.
Un modeleur, moins utilis, mais plus original, est celui dcrit par Mantyla, qui construit une reprsentation par
frontires (8). Ce modeleur est form dune suite de fonctions,appeles oprateurs dEuler. Les oprateurs
dEuler assurent la cohrence topologique des objets engendrs : aprs application dun oprateur sur une
reprsentation par frontire, la relation dEuler dfinie au II.2.5.3 est toujours conserve.
La figure 10 prsente lensemble des oprateurs dEuler dans une version rduite du modeleur de Mantyla.

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


12
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

Figure II.10 : Oprateurs dEuler

application :
Donner une sequence des oprateurs dEuler pour la construction et la destruction du cube. reprsent sur la
figure 11.

Construction : Destruction :

Figure 11 : Exemple de construction et de destruction pour un cube

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


13
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

Travail dirig 2 ter


La reprsentation par les bords(Brep ) de polydres est dfinie par des listes de sommets, d'artes et de
faces. Toute face est un polygone dans R3 . Toute arte est commune deux faces et tout sommet est
commun au moins 3 artes.
Un polydre prismatique est obtenu par le balayage d'un contour de base dlimitant sa 1re face
extrme(figure), constitu des sommets Si (i=1..n) et des artes Aj(j=1..n),, le long d'un vecteur de
translation formant un angle non nul avec le plan porteur de ce contour de base. Ce balayage engendre
alors n artes(Ai, i=n+1..2n)) et n faces latrales(Fj(j=2..n+1)), et une 2eme face extrme Fn+2
constitue de n artes (Ai, i=2n+1..3n)) et de n sommets Sj (j=n+1..2n).
Nous allons utiliser la reprsentation demi-arte("Half Edge") pour reprsenter informatiquement un
polydre prismatique. Dans cette reprsentation, chaque arte est reprsente par deux demi artes qui
se rfrencent mutuellement. Ainsi par exemple , sur la figure ci-dessous l'arte A1 est reprsente par
2 demi artes d1A1 et d2A1(flches en pointilles de sens oppos). La 1re demi arte a le mme sens
d'orientation que l'arte correspondante. La 2nde demi arte est oriente dans le sens oppos l'arte
correspondante. Les demi artes d'une face sont chanes entre elles.

Sn+2
A2n+1
Sn+1
d1An+1 Fn+2
F2 An+1 d1A3n
S2 d2A1 d2An+1 A3n
A1 S1 Fn+1 S2n
A2
d1A1
S3 d1A2
A2n
An
F1
A3 Sn Fn S2n-1

An-1
S4 An-2
Sn-1

Figure : sommets, artes, demi artes et faces composants un prisme

La structure de donnes ci-dessous correspond la reprsentation "demi-arte" :


struct prisme
struct face *face; /* (Pointeur) sur 1ere face extrme du prisme */
struct prisme *suiv; /* sur prisme suivant */

struct face
int type ; /* 0 : extrme / 1 : latrale */
struct demi_arete *da; /* sur une demi arte quelconque de la face*/
struct face *suiv ; /* sur face suivante */

struct demi_arete
struct sommet *som; /* sur l'origine de la demi arte*/
struct demi_arete *paire; /* sur la demi arte oppose */

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


14
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

struct face *face; /* sur la face contenant la demi arte*/


struct demi_arete *suiv ; /* sur la demi arte suivante */

struct sommet
double x, y,z ; /* coordonnes */
struct demi_arete *da; /* sur une demi arte quelconque manant du sommet */

La table ci-dessous donne les informations topologiques de la structure "struct demi arete" :
demi_arete som paire face suiv
d1A1 S1 d2A1 F1 d1A2
d1A2 S2 d2A2 F1 d1A3

d1An+1 S1 d2An+1 F2 d1A2n+1

d2A3n Sn+1 d1A3n Fn+2 d2A3n-1
En supposant que la structure de donnes d'un prisme(struct prisme p), constitue d'une liste circulaire
de faces de n+2 enregistrements, de 2*3n enregistrements de demi artes inter relis par les
informations topologiques donnes par la table ci-dessus, et de 2n enregistrements de sommets, est
initialise :
1) Ecrire en langage C la fonction ContourFace(struct face f, struct demi_arete *da[]) qui retourne
dans le tableau da les demi artes de la face f et qui renvoie le nombre de celles-ci .
2) Ecrire en langage C la fonction AretesIncidentes_Sommet(struct sommet s, struct demi_arete
*da[]) qui retourne dans le tableau da les demi artes incidentes au sommet s et qui renvoie le
nombre de celles-ci .
3) Ecrire en langage C la fonction FacesIncidentes_Sommet(struct sommet s, struct face *f[]) qui
retourne dans le tableau f les faces incidentes au sommet s et qui renvoie le nombre de celles-ci .
4) Ecrire en langage C la fonction VisualiserPrisme(struct prisme p) qui visualise le prisme p. On
suppose qu'il existe une fonction VisualiserFace(struct demi_arete *da[], int n) qui effectue la
projection et l'affichage du contour d'une face, constitue de n demi artes.
5) Quel avantage voyez vous cette structure par rapport la "Winged Edge".

Bibliographie :
Rfrences bibliographiques du chapitre I
(1) H. SAMET The quadtree and related hierrarchical data structures , ACM comp. Surveys , 16(2), June
1984, 187-260.
(2) H. SAMET Applications of spatial data structures. Computer graphics, Image processing and GIS,
Addison Wesley, Reading, MA 1990.

Rfrences bibliographiques du chapitre II

(1) A.A.G. Requicha, Representations for rigid solids : theory methods and systems , ACM computing
surveys, 12(4), dec 1980, 437-464
(2) H. Samet, the quadtree and related hierarchical data structures , ACM computing surveys, 16(2), 1982,
109-144
(3) B. Baumgardt Winged-Edge polyhedron representation , Stanford Artificial Intelligent Report cs-320,
1972
(4) F.P. Preparata, M. I. Shamos, Computational geometry : an introduction , Springer- Verlag, 1985

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


15
Universit d'Evry-Val d'EssonneUFR Sciences & Technologies/Dpt de Gnie Informatique

(5) M. Mantyla, Set operations of GWB , Computer Graphics Forum, 2, aug 83, 122-134
(6) P. Brunet, I. Navazo, Geometric Modeling using Exact Octree Representation of polyhedral object .
Eurographics 85
(7) I. Carlbon, II. Chakrararky, A hierarchical data structure for representing the spacial decomposition of 3D
object , IEEE CG&A, 1985
(8) M. Mantyla, A solid modeler with Euler operators , IEEE CG&A, 2(7), 1982, 17-31

EC833 - Synthse dimages M1 E3A RVSI RI http://lsc.univ-evry.fr/~mallem


16

Vous aimerez peut-être aussi