1 : C KAM1M2 SOURCE NC 10/12/02 21:15:00 6803 2 : SUBROUTINE KAM1M2(R1,Z1,R2,Z2,RA,ZA,RB,ZB,R,Z,KM,KA) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8 (A-H,O-Z) 5 : C---------------------------------------------------------------------- 6 : C SP appele par KAINTE 7 : C calcul du point d intersection du segment obstructeur AB 8 : C (RA,ZA) (RB,ZB) 9 : C et du segment M1M2 (R1,Z1) (R2,Z2) 10 : C resultat: 11 : C R Z coordonnees du point 12 : C KM=1 si le point appartient au segment M1M2 13 : C si oui KA=1 si le point appartient au segment AB 14 : C---------------------------------------------------------------------- 15 : C EMIN=1.D-5 16 : C EMIN1=-1.D-5 17 : C 18 : C 11/2010: on augmente la précision du calcul insuffisante si dr/r tres faible 19 : C 20 : EMIN=1.D-10 21 : EMIN1=-1.D-10 22 : KM=0 23 : KA=0 24 : 25 : U1=Z1-Z2 26 : U2=R2-R1 27 : V1=ZA-ZB 28 : V2=RB-RA 29 : 30 : PS=U1*V2-U2*V1 31 : IF(DABS(PS).GE.EMIN) THEN 32 : R=(U1*V2*R1-U2*V1*RA+ U2*V2*(Z1-ZA) )/PS 33 : Z=(U1*V2*ZA-U2*V1*Z1- U1*V1*(R1-RA) )/PS 34 : PS=(R-R1)*(R-R2)+(Z-Z1)*(Z-Z2) 35 : IF(PS.LT.EMIN1) THEN 36 : KM=1 37 : 38 : PA=(R-RA)*(R-RB)+(Z-ZA)*(Z-ZB) 39 : IF(PA.LT.EMIN1) KA=1 40 : 41 : ENDIF 42 : ENDIF 43 : 44 : RETURN 45 : END 46 : 47 :
© Cast3M 2003 - All rights reserved.
Disclaimer