Télécharger proj.eso

Retour à la liste

Numérotation des lignes :

proj
  1. C PROJ SOURCE CHAT 05/01/13 02:32:14 5004
  2. C SOURCE MARTINEZ
  3. SUBROUTINE PROJ (P0,M0,M1,M2,M3,DIM2)
  4. C
  5. C Projection de M0 sur le plan M1,M2,M3 -> P0
  6. C
  7. C
  8. IMPLICIT INTEGER(I-N)
  9. IMPLICIT REAL*8 (A-H,O-Z)
  10. REAL*8 P0(3),M0(3),M1(3),M2(3),M3(3)
  11. REAL*8 AP(3,3),YP(3),XP(3)
  12. LOGICAL DIM2,DETNUL
  13. C
  14. A1=M2(1)-M1(1)
  15. A2=M2(2)-M1(2)
  16. A3=M2(3)-M1(3)
  17. B1=M3(1)-M1(1)
  18. B2=M3(2)-M1(2)
  19. B3=M3(3)-M1(3)
  20. C1=A2*B3-A3*B2
  21. C2=A3*B1-A1*B3
  22. C3=A1*B2-A2*B1
  23. C
  24. AP(1,1)=A1
  25. AP(1,2)=A2
  26. AP(1,3)=A3
  27. AP(2,1)=B1
  28. AP(2,2)=B2
  29. AP(2,3)=B3
  30. AP(3,1)=C1
  31. AP(3,2)=C2
  32. AP(3,3)=C3
  33. C
  34. YP(1)=A1*M0(1)+A2*M0(2)+A3*M0(3)
  35. YP(2)=B1*M0(1)+B2*M0(2)+B3*M0(3)
  36. YP(3)=C1*M0(1)+C2*M0(2)+C3*M0(3)
  37. C
  38. C
  39. C > 1ERE EQUATION : M1M2.M0P0 = 0
  40. C > 2EME EQUATION : M1M3.M0P0 = 0
  41. C > 3EME EQUATION : DET(M1M2,M1M3,M1P0) = 0
  42. C
  43. C
  44. CALL EQPAR3(XP,AP,YP,DETNUL)
  45. C
  46. IF (DETNUL.EQV..FALSE.) THEN
  47. P0(1)=XP(1)
  48. P0(2)=XP(2)
  49. P0(3)=XP(3)
  50. DIM2=.TRUE.
  51. ELSE
  52. P0(1)=0.D0
  53. P0(1)=0.D0
  54. P0(1)=0.D0
  55. DIM2=.FALSE.
  56. ENDIF
  57. C
  58. C P0(1)=M0(1)
  59. C P0(2)=M0(2)
  60. C P0(3)=M0(3)
  61. RETURN
  62. END
  63.  
  64.  
  65.  

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