Télécharger nlogo.eso

Retour à la liste

Numérotation des lignes :

nlogo
  1. C NLOGO SOURCE PV 05/09/22 21:21:50 5181
  2. C NLOGO SOURCE ENSAM 94/09/29 21:15:28 1275
  3. c subroutine utilisee dans tableau
  4. c source ensam aout 94
  5.  
  6.  
  7. ***************************************************
  8. *
  9. * AFFICHE LE LOGO
  10. *
  11. ***************************************************
  12. SUBROUTINE NLOGO (ICOUL,XPOS,YPOS,ECH)
  13. *
  14. * DEFINITION DES VARIABLES
  15. *
  16. * icoul couleur
  17. * xpos,ypos position du logo dans la fenetre
  18. * ech echelle du logo
  19. IMPLICIT INTEGER(I-N)
  20. integer icoul
  21. real xpos,ypos,ech
  22. *
  23. integer ibn,icn,idens
  24. real angle,tcx,tcy,ra,rb,tx(2),ty(2),tz(2),ti,pi
  25. real coef
  26. *
  27. tz(1)=0
  28. tz(2)=0
  29. ra = ech/2.2
  30. rb = ech/7.
  31. pi = 4*atan(1.)
  32. idens = ech*60.0
  33. idens = max(idens,10)
  34. idens = min(idens,300)
  35. coef = pi/(real(idens))
  36. call chcoul(icoul)
  37. *
  38. * TRACE DES BOULES
  39. *
  40. tcx = xpos
  41. tcy = ypos
  42. do 300 icn=1 , idens
  43. ti = real(icn)*coef
  44. tx(1) = tcx + cos(ti)*rb
  45. ty(1) = tcy + sin(ti)*rb
  46. tx(2) = tcx - cos(ti)*rb
  47. ty(2) = tcy - sin(ti)*rb
  48. call polrl(2,tx,ty,tz)
  49. 300 continue
  50. angle = pi/2.
  51. do 500 ibn=1 , 6
  52. tcx = xpos + cos(angle)*ra
  53. tcy = ypos + sin(angle)*ra
  54. do 400 icn=1 , idens
  55. ti = real(icn)*coef
  56. tx(1) = tcx + cos(ti)*rb
  57. ty(1) = tcy + sin(ti)*rb
  58. tx(2) = tcx - cos(ti)*rb
  59. ty(2) = tcy - sin(ti)*rb
  60. call polrl(2,tx,ty,tz)
  61. 400 continue
  62. angle = angle + pi/3.
  63. 500 continue
  64. *
  65. * TRACE DES LIAISONS ENTRE LES BOULES
  66. *
  67. call chcoul(icoul)
  68. tx(1) = xpos
  69. ty(1) = ypos
  70. tx(2) = xpos
  71. ty(2) = ypos - ra
  72. call polrl(2,tx,ty,tz)
  73. tx(2) = xpos
  74. ty(2) = ypos + ra
  75. call polrl(2,tx,ty,tz)
  76. tx(2) = xpos + ra*cos(pi/6.)
  77. ty(2) = ypos - ra*sin(pi/6.)
  78. call polrl(2,tx,ty,tz)
  79. tx(2) = xpos - ra*cos(pi/6.)
  80. ty(2) = ypos - ra*sin(pi/6.)
  81. call polrl(2,tx,ty,tz)
  82. tx(2) = xpos + ra*cos(pi/6.)
  83. ty(2) = ypos + ra*sin(pi/6.)
  84. call polrl(2,tx,ty,tz)
  85. tx(2) = xpos - ra*cos(pi/6.)
  86. ty(2) = ypos + ra*sin(pi/6.)
  87. call polrl(2,tx,ty,tz)
  88. tx(1) = xpos
  89. ty(1) = ypos - ra
  90. tx(2) = xpos + ra*cos(pi/6.)
  91. ty(2) = ypos - ra*sin(pi/6.)
  92. call polrl(2,tx,ty,tz)
  93. tx(1) = xpos
  94. ty(1) = ypos - ra
  95. tx(2) = xpos + ra*cos(pi/6.)
  96. ty(2) = ypos + ra*sin(pi/6.)
  97. call polrl(2,tx,ty,tz)
  98. tx(1) = xpos
  99. ty(1) = ypos - ra
  100. tx(2) = xpos - ra*cos(pi/6.)
  101. ty(2) = ypos - ra*sin(pi/6.)
  102. call polrl(2,tx,ty,tz)
  103. tx(1) = xpos
  104. ty(1) = ypos + ra
  105. tx(2) = xpos + ra*cos(pi/6.)
  106. ty(2) = ypos + ra*sin(pi/6.)
  107. call polrl(2,tx,ty,tz)
  108. *
  109. END
  110. *
  111. ****** FIN DE LA PROCEDURE NLOGO ************
  112. ***************************************************
  113.  
  114.  
  115.  
  116.  

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