knorm
C KNORM SOURCE CB215821 16/04/21 21:17:31 8920 C___________________________________________________________ C Fonction : calcule la surface et de la normale d'un polygone . C___________________________________________________________ C Arguments : C NES ( in ) : dimension de l'espace C NCM ( in ) : nombre de sommets C CM ( in ) : tableau des coordonnées des sommets C U ( out ) : normale C S ( out ) : surface C___________________________________________________________ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION V(3,2),CM(NES,NCM),U(*),W(3) C DO 10 K=1,3 V(K,1)=CM(K,2)-CM(K,1) V(K,2)=CM(K,1)-CM(K,NCM) 10 CONTINUE U(1)=-V(2,1)*V(3,2)+V(3,1)*V(2,2) U(2)=-V(3,1)*V(1,2)+V(1,1)*V(3,2) U(3)=-V(1,1)*V(2,2)+V(2,1)*V(1,2) D=0.D0 DO 20 K=1,3 D=D+U(K)**2 20 CONTINUE D=SQRT(D) DO 21 K=1,3 U(K)=U(K)/D 21 CONTINUE U(4) = -(U(1)*CM(1,1)+U(2)*CM(2,1)+U(3)*CM(3,1)) S = 0.D0 DO I=2,(NCM-1) C On segmente le polygone en (NCM-2) triangles C C Calcul de la surface d'un triangle DO K=1,3 V(K,1)=CM(K,I)-CM(K,1) V(K,2)=CM(K,1)-CM(K,I+1) ENDDO W(1)=-V(2,1)*V(3,2)+V(3,1)*V(2,2) W(2)=-V(3,1)*V(1,2)+V(1,1)*V(3,2) W(3)=-V(1,1)*V(2,2)+V(2,1)*V(1,2) D=0.D0 DO K=1,3 D=D+W(K)**2 ENDDO D=SQRT(D) S = S + D/2. ENDDO C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales