Télécharger int2d.eso

Retour à la liste

Numérotation des lignes :

  1. C INT2D SOURCE CHAT 05/01/13 00:39:24 5004
  2. SUBROUTINE INT2D (IP1,IP2,IP3,IP4,INTERS,RESULT)
  3. ************************************************************************
  4. *
  5. * I N T 2 D
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. * INTERSECTION DE 2 DROITES DEFINIES CHACUNES PAR DEUX POINTS
  11. * .
  12. *
  13. * MODULES UTILISES:
  14. * -----------------
  15. *
  16. IMPLICIT INTEGER(I-N)
  17. -INC CCOPTIO
  18. *
  19. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  20. * -----------
  21. *
  22. * IP1... (E) POINT 1 DE LA DROITE 1
  23. * IP2... (E) POINT 2 DE LA DROITE 1
  24. * IP3... (E) POINT 1 DE LA DROITE 2
  25. * IP4... (E) POINT 2 DE LA DROITE 2
  26. * INTERS (S) POINT D'INTERSECTION DES DEUX DROITES
  27. * RESULT (S) = 'OK' SI LA RESOLUTION A PU SE FAIRE
  28. * = 'PARALLELE' SI LA RESOLUTION N'A PAS PU SE FAIRE
  29. * = 'NON COPLANAIRE'
  30. *
  31. CHARACTER*(*) RESULT
  32. *
  33. * VARIABLES:
  34. * ----------
  35. *
  36. * X.,Y.,Z. = COORDONNEES DES POINTS DES DROITES
  37. * D. = DENSITES DES POINTS
  38. * PVEC = PRODUIT VECTORIEL P1P2.P3P4
  39. *
  40. * AA ( ) MATRICE 3X2 DU SYSTEME
  41. * B ( ) SECOND MEMBRE DU SYSTEME
  42. * T ( ) MATRICE RESULTAT
  43. *
  44. REAL*8 AA(3,2),B(3),T(2),
  45. & X1,X2,X3,X4,Y1,Y2,Y3,Y4,Z1,Z2,Z3,Z4,
  46. & XI,YI,ZI,D1,D2,D3,D4,D,T1,T2,
  47. & PV1,PV2,PV3,PVEC
  48. LOGICAL RESOLU
  49. *
  50. * REMARQUES:
  51. * ----------
  52. * LES POINTS DONNEES SONT SUPPOSES NON CONFONDUS
  53. *
  54. * AUTEUR, DATE DE CREATION:
  55. * -------------------------
  56. *
  57. * LIONEL VIVAN 19 NOVEMBRE 1987
  58. *
  59. * LANGAGE:
  60. * --------
  61. *
  62. * FORTRAN77
  63. *
  64. ************************************************************************
  65. *
  66. * CALCUL DES COORDONNEES DES POINTS
  67. *
  68. CALL EXCOO1(IP1,X1,Y1,Z1,D1)
  69. CALL EXCOO1(IP2,X2,Y2,Z2,D2)
  70. CALL EXCOO1(IP3,X3,Y3,Z3,D3)
  71. CALL EXCOO1(IP4,X4,Y4,Z4,D4)
  72. *
  73. * DENSITE LOCALE MOYENNE
  74. *
  75. D=((D1+D2+D3+D4)/4.D0)**2.
  76. *
  77. * TEST : DROITES PARALLELES ?
  78. *
  79. PV1=((Y2-Y1)*(Z4-Z3))-((Z2-Z1)*(Y4-Y3))
  80. PV2=((Z2-Z1)*(X4-X3))-((X2-X1)*(Z4-Z3))
  81. PV3=((X2-X1)*(Y4-Y3))-((Y2-Y1)*(X4-X3))
  82. PVEC=SQRT(PV1**2+PV2**2+PV3**2)
  83. IF (PVEC.LT.(D/100.D0)) THEN
  84. RESULT='PARALLELE'
  85. RETURN
  86. END IF
  87. AA(1,1)=X2-X1
  88. AA(1,2)=X3-X4
  89. AA(2,1)=Y2-Y1
  90. AA(2,2)=Y3-Y4
  91. AA(3,1)=Z2-Z1
  92. AA(3,2)=Z3-Z4
  93. B(1)=X3-X1
  94. B(2)=Y3-Y1
  95. B(3)=Z3-Z1
  96. *
  97. * CALCUL DU POINT D'INTERSECTION
  98. *
  99. CALL EQUA32(AA,B,T,RESOLU)
  100. IF (IERR.NE.0) RETURN
  101. IF (.NOT.RESOLU) THEN
  102. RESULT='NON COPLANAIRE'
  103. RETURN
  104. END IF
  105. T1=T(1)
  106. T2=T(2)
  107. XI=X1+T1*(X2-X1)
  108. YI=Y1+T1*(Y2-Y1)
  109. ZI=Z1+T1*(Z2-Z1)
  110. CALL CREPO1(XI,YI,ZI,INTERS)
  111. RESULT='OK'
  112. *
  113. END
  114.  
  115.  
  116.  

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