Numérotation des lignes :

C INT2D     SOURCE    CHAT      05/01/13    00:39:24     5004      SUBROUTINE INT2D (IP1,IP2,IP3,IP4,INTERS,RESULT)**************************************************************************                              I N T 2 D*                             -----------** FONCTION:* ---------*     INTERSECTION DE 2 DROITES DEFINIES CHACUNES PAR DEUX POINTS*     .** MODULES UTILISES:* -----------------*      IMPLICIT INTEGER(I-N)-INC CCOPTIO** PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)* -----------**     IP1...  (E)  POINT 1 DE LA DROITE 1*     IP2...  (E)  POINT 2 DE LA DROITE 1*     IP3...  (E)  POINT 1 DE LA DROITE 2*     IP4...  (E)  POINT 2 DE LA DROITE 2*     INTERS  (S)  POINT D'INTERSECTION DES DEUX DROITES*     RESULT  (S)  = 'OK' SI LA RESOLUTION A PU SE FAIRE*                  = 'PARALLELE' SI LA RESOLUTION N'A PAS PU SE FAIRE*                  = 'NON COPLANAIRE'*      CHARACTER*(*) RESULT** VARIABLES:* ----------**     X.,Y.,Z. = COORDONNEES DES POINTS DES DROITES*     D.       = DENSITES DES POINTS*     PVEC     = PRODUIT VECTORIEL P1P2.P3P4**     AA      ( )  MATRICE 3X2 DU SYSTEME*     B       ( )  SECOND MEMBRE DU SYSTEME*     T       ( )  MATRICE RESULTAT*      REAL*8 AA(3,2),B(3),T(2),     &       X1,X2,X3,X4,Y1,Y2,Y3,Y4,Z1,Z2,Z3,Z4,     &       XI,YI,ZI,D1,D2,D3,D4,D,T1,T2,     &       PV1,PV2,PV3,PVEC      LOGICAL RESOLU** REMARQUES:* ----------*      LES POINTS DONNEES SONT SUPPOSES NON CONFONDUS** AUTEUR, DATE DE CREATION:* -------------------------**     LIONEL VIVAN       19 NOVEMBRE 1987** LANGAGE:* --------**     FORTRAN77***************************************************************************    CALCUL DES COORDONNEES DES POINTS*      CALL EXCOO1(IP1,X1,Y1,Z1,D1)      CALL EXCOO1(IP2,X2,Y2,Z2,D2)      CALL EXCOO1(IP3,X3,Y3,Z3,D3)      CALL EXCOO1(IP4,X4,Y4,Z4,D4)**    DENSITE LOCALE MOYENNE*      D=((D1+D2+D3+D4)/4.D0)**2.**   TEST : DROITES PARALLELES ?*      PV1=((Y2-Y1)*(Z4-Z3))-((Z2-Z1)*(Y4-Y3))      PV2=((Z2-Z1)*(X4-X3))-((X2-X1)*(Z4-Z3))      PV3=((X2-X1)*(Y4-Y3))-((Y2-Y1)*(X4-X3))      PVEC=SQRT(PV1**2+PV2**2+PV3**2)      IF (PVEC.LT.(D/100.D0)) THEN         RESULT='PARALLELE'         RETURN      END IF      AA(1,1)=X2-X1      AA(1,2)=X3-X4      AA(2,1)=Y2-Y1      AA(2,2)=Y3-Y4      AA(3,1)=Z2-Z1      AA(3,2)=Z3-Z4      B(1)=X3-X1      B(2)=Y3-Y1      B(3)=Z3-Z1**   CALCUL DU POINT D'INTERSECTION*      CALL EQUA32(AA,B,T,RESOLU)      IF (IERR.NE.0) RETURN      IF (.NOT.RESOLU) THEN         RESULT='NON COPLANAIRE'         RETURN      END IF      T1=T(1)      T2=T(2)      XI=X1+T1*(X2-X1)      YI=Y1+T1*(Y2-Y1)      ZI=Z1+T1*(Z2-Z1)      CALL CREPO1(XI,YI,ZI,INTERS)      RESULT='OK'*      END

© Cast3M 2003 - Tous droits réservés.
Mentions légales