* fichier voro2d.dgibi * *----------------------------------------------------------------------* * voro3d.dgibi est un exemple d'utilisation dans un cas bidimensionel * * de la procedure MAILVORO de maillage d'agregats cubiques de polyedres* * de Voronoi. Cette procedure fait appel a l'operateur VORO * * La procedure @POINTIR permet de "tirer" aleatoirement un ensemble * * de points servant de germe de la partition de Voronoi. * *----------------------------------------------------------------------* * * * * *----------------------------------------------------------------------* * Maillage d'un agregat 2D de polyedres de Voronoi * *----------------------------------------------------------------------* * *-------------------- Parametres de la realisation --------------------* * * * NBG1 : Nombre de polyedres. * * DEXC1 : Distance d'exclusion entre points germes des polyedres. * * Attention, si la distance est trop importante, le nombre * * de polyedres demandes ne pourra pas etre atteint. * * Par defaut, vaut 1/5 de la taille moyenne des polyedres. * * ITRAC1 : VRAI => affichage resultats. * NBG1 = 50; DEXC1 = 0.05; ITRAC = FAUX; * OPTI 'ECHO' 1 ; * OPTI 'DIME' 2 'ELEM' 'TRI3' ; * *----------------------------------------------------------------------* * Definition du contour de l'agregat * *----------------------------------------------------------------------* ** CONTOUR SIMPLE (CARRE UNITAIRE) SURF1 = (D 1 (0. 0.) (1. 0.)) TRAN 1 (0. 1.) ; CON1 = CONT SURF1 ; ** CONTOUR CONCAVE (ETOILE A N BRANCHES) N = 5 ; R1 = 0.5 ; R2 = 0.2 ; P0 = 0.5 0.5 ; P1 = P0 PLUS (0. R1) ; P11 = P0 PLUS (0. R2) ; P11 = P11 TOUR (0.5*360./N) P0 ; PA = P1 ; PB = P11 ; MP1 = PA ET PB ; REPE B1 (N-1); PC = PA TOUR (360./N) P0 ; PD = PB TOUR (360./N) P0 ; MP1 = MP1 ET PC ET PD ; PA = PC ; PB = PD ; FIN B1 ; CON2 = QUEL 'SEG2' MP1 ; CON2 = D 1 CON2 P1 ; *----------------------------------------------------------------------* * Tirage des points germes des polyedres * *----------------------------------------------------------------------* * 'SAUT' 1 'LIGN' ; 'MESS' '***** Tirage des points germes des polyedres' ; * MAIL1 = @POINTIR 'EXCL' NBG1 'SPHE' DEXC1 ; * ** PARTITIONS DE VORONOI TAB0 = VORO MAIL1 CON1 ; A0 = TAB0 . 'VISU' ; ** MAILLAGE DE LA PARTITION DE VORONOI TAB1 = MAILVORO TAB0 CON1 'COUL'; * SI ITRAC; V1 = TAB1 . 'MAIL' ; TRAC 'FACE' V1 'TITR' 'Maillage de la partition de Voronoi' ; FINS; * ** PARTITIONS DE VORONOI TAB0 = VORO MAIL1 CON2 ; A0 = TAB0 . 'VISU' ; ** MAILLAGE DE LA PARTITION DE VORONOI TAB1 = MAILVORO TAB0 CON2 'COUL' ; SI ITRAC; V1 = TAB1 . 'MAIL' ; TRAC 'FACE' V1 'TITR' 'Maillage de la partition de Voronoi' ; FINS; FIN;