1 : C D2DEF SOURCE CHAT 06/03/29 21:18:09 5360 2 : SUBROUTINE D2DEF(XP1,XP2,XP3,XPC,VDIA,IDIMC, 3 : > COEF,TS,iarr) 4 : C ***************************************************************** 5 : C OBJET : TAILLE SOUHAITE PAR DEFAUT 6 : C (LA TAILLE SOUHAITE EST EVALUEE AU CENTRE D'UNE BOULE) 7 : C EN ENTREE : 8 : C XP1,XP2,XP3 : LES TROIS POINT DU TRIANGLE 9 : C XPC : UN POINT SUR LE CERCLE (INUTILISE) 10 : C VDIA : LE VECTEUR DIAMETRE PARTANT DE XPC 11 : C IDIMC : DIMENSION DE L'ESPACE 12 : C EN SORTIE : 13 : C TS : TAILLE SOUHAITE POUR LE TRIANGLE 14 : C = LONGUEUR DE SA PLUS PETITE ARETE 15 : C COEF : TS / RC 16 : C RC EST LE RAYON DU CERCLE CIRCONSCRIT 17 : C PLUS COEF EST PETIT PLUS ON RAFFINE 18 : C iarr : CODE D'ERREUR 0 SI OK, 19 : C -1 SI LE RAYON CIRCONSCRIT EST NUL 20 : C NIVEAU : FICHIER 21 : C ***************************************************************** 22 : IMPLICIT INTEGER(I-N) 23 : INTEGER IDIMC 24 : REAL*8 XP1(*),XP2(*),XP3(*) 25 : REAL*8 XPC(*),VDIA(*),COEF,TS 26 : INTEGER iarr 27 : C 28 : REAL*8 V(3),D,DMIN,DIAM2,RC,XYZEPS 29 : EXTERNAL XNORVE 30 : REAL*8 XNORVE 31 : XYZEPS=1.D-10 32 : C 33 : C ============================ 34 : C ------ ARETE LA PLUS COURTE ------ 35 : C ============================ 35 : CALL DIFFVE(XP2,XP1,IDIMC,V) 36 : DMIN = XNORVE(V,IDIMC) 36 : CALL DIFFVE(XP3,XP2,IDIMC,V) 37 : D = XNORVE(V,IDIMC) 38 : DMIN = MIN( D, DMIN ) 38 : CALL DIFFVE(XP1,XP3,IDIMC,V) 39 : D = XNORVE(V,IDIMC) 40 : DMIN = MIN( D, DMIN ) 41 : C ============================ 42 : C ------ SUR LE RAYON CIRCONSCRIT ------ 43 : C ============================ 44 : DIAM2 = VDIA(1)**2 + VDIA(2)**2 45 : RC = SQRT( DIAM2 ) / 2.0D0 46 : IF( RC.GT. -XYZEPS .AND.RC .LT. XYZEPS )GOTO 999 47 : COEF = DMIN / RC 48 : TS = DMIN 49 : iarr = 0 50 : 999 END 51 : 52 : 53 : 54 :
© Cast3M 2003 - All rights reserved.
Disclaimer