caljqb
C CALJQB SOURCE CHAT 05/01/12 21:46:53 5004 C*********************************************************************** C CE SP CALCULE C LA MATRICE DE ROTATION DU REPERE GLOBALE VERS LE REPERE LOCAL C DEFINI PAR DEUX OU TROIS POINTS PRIS DANS XYZ SUIVANT QU'ON EST C EN 2D OU EN 3D C ON PREND P1 P2 ET PNP C C U TEL QUE T SOIT DIRIGE SUIVANT P1P2 V TOURNE VERS C . .V P1PNP ET U = T VECTORIEL V C . . C . . __ __ C (P1). . . . .T (P2) | tx ty tz | C | | C ON A ALORS WL= P WG P = | vx vy vz | C | | C | ux uy uz | C |__ __| C*********************************************************************** IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) REAL*8 XYZ(IES,NP),P(IES,IES) C*** IF(IES.EQ.2)GO TO 200 TX=XYZ(1,2)-XYZ(1,1) TY=XYZ(2,2)-XYZ(2,1) TZ=XYZ(3,2)-XYZ(3,1) TT=TX*TX+TY*TY+TZ*TZ TT=1.D0/SQRT(TT) TX=TX*TT TY=TY*TT TZ=TZ*TT C WRITE(6,*)'TX= TY= TZ= TT=',TX,TY,TZ,TT UX=(XYZ(2,NP)-XYZ(2,1))*TZ-(XYZ(3,NP)-XYZ(3,1))*TY UY=(XYZ(3,NP)-XYZ(3,1))*TX-(XYZ(1,NP)-XYZ(1,1))*TZ UZ=(XYZ(1,NP)-XYZ(1,1))*TY-(XYZ(2,NP)-XYZ(2,1))*TX UU=UX*UX+UY*UY+UZ*UZ UU=1.D0/SQRT(UU) UX=-UX*UU UY=-UY*UU UZ=-UZ*UU C WRITE(6,*)'UX,UY,UZ,UU',UX,UY,UZ,UU VX=+UY*TZ-UZ*TY VY=+UZ*TX-UX*TZ VZ=+UX*TY-UY*TX C WRITE(6,*)'VX= VY= VZ=',VX,VY,VZ P(1,1)=TX P(1,2)=TY P(1,3)=TZ P(2,1)=VX P(2,2)=VY P(2,3)=VZ P(3,1)=UX P(3,2)=UY P(3,3)=UZ C RETURN 200 CONTINUE TX=XYZ(1,2)-XYZ(1,1) TY=XYZ(2,2)-XYZ(2,1) TT=TX*TX+TY*TY TT=SQRT(TT) TX=TX/TT TY=TY/TT VX=-TY VY= TX P(1,1)=TX P(1,2)=TY P(2,1)=VX P(2,2)=VY RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales