C DROIT SOURCE PV 07/10/11 21:15:02 5907 C---------------------------------------------------------------------| C | LOGICAL FUNCTION DROIT(I1,I2,I3) C | C CETTE FONCTION DETECTE L'ANGLE ENTRE LE SEGMENT ›I1,I2! | C ET LE SEGMENT ›I2,I3! | C DROIT EST VRAIE SI L'ANGLE EST CORRECT | C DROIT EST FAUSSE SI L'ANGLE EST INCORRECT | C | C---------------------------------------------------------------------| C C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCOPTIO -INC TDEMAIT DIMENSION V1(3),V2(3) DO 100 I=1,3 V1(I)=XYZ(I,I1)-XYZ(I,I2) V2(I)=XYZ(I,I3)-XYZ(I,I2) 100 CONTINUE C V1NORM=SQRT(V1(1)**2+V1(2)**2+V1(3)**2) V2NORM=SQRT(V2(1)**2+V2(2)**2+V2(3)**2) C DO 110 I=1,3 V1(I)=V1(I)/V1NORM V2(I)=V2(I)/V2NORM 110 CONTINUE C C SCAL=V1(1)*V2(1)+V1(2)*V2(2)+V1(3)*V2(3) C DROIT=.TRUE. IF (SCAL.GT.0.99999d0) DROIT=.FALSE. IF (-SCAL.GT.0.99999d0) DROIT=.FALSE. * IF (SCAL.GT.0.99d°) DROIT=.FALSE. * IF (-SCAL.GT.0.99d0) DROIT=.FALSE. C IF (SCAL.GT.0.99999d0) WRITE(6,1000)I1,I2,I3 IF (SCAL.LT.-0.99999d0) WRITE(6,1001)I1,I2,I3 1000 FORMAT(' DROIT LE SEGMENT',3I3,' EST TROP FERME |') 1001 FORMAT(' DROIT LE SEGMENT',3I3,' EST TROP PLAT |') C RETURN END