int2d
C INT2D SOURCE CHAT 05/01/13 00:39:24 5004 ************************************************************************ * * I N T 2 D * ----------- * * FONCTION: * --------- * INTERSECTION DE 2 DROITES DEFINIES CHACUNES PAR DEUX POINTS * . * * MODULES UTILISES: * ----------------- * IMPLICIT INTEGER(I-N) -INC PPARAM -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, & 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 * * * 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 * IF (IERR.NE.0) RETURN IF (.NOT.RESOLU) THEN RESULT='NON COPLANAIRE' RETURN END IF RESULT='OK' * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales