Télécharger @FIS_2.procedur

Retour à la liste

Numérotation des lignes :

  1. * @FIS_2 PROCEDUR CHAT 97/09/25 21:15:08 2851
  2. debproc @FIS_2 p01*point p03*point p05*point p07*point oc*point
  3. c*FLOTTANT a*FLOTTANT alpha*FLOTTANT beta*FLOTTANT
  4. nt*entier ndt*entier;
  5. *
  6. o = 0 0 0 ;
  7. ox = c 0. 0. ;
  8. *
  9. si (ega ndt 1) ;
  10. na = -1 ;
  11. nb = 4 ;
  12. nc = 2 ;
  13. nd = 1 ;
  14. finsi ;
  15. *
  16. si (ega ndt 2) ;
  17. na = -2 ;
  18. nb = 8 ;
  19. nc = 4 ;
  20. nd = 2 ;
  21. finsi ;
  22. *
  23. si ((coor 1 oc) ega 0 ) ;
  24. p04 = plus p03 p05 / 2 ;
  25. sinon ;
  26. lcercle = p03 cerc 1 oc p05 ;
  27. pcercle = chan poi1 lcercle ;
  28. p04 = pcercle poin 2 ;
  29. finsi ;
  30. *
  31. p02 = plus p01 p03 / 2;
  32. p06 = plus p05 p07 / 2;
  33. p08 = plus p07 p01 / 2;
  34. *
  35. idiv1 = na ;
  36. idiv2 = 0 ;
  37. ndiv4 = nt / nb ;
  38. * Cas du quart d'ellipse
  39. repeter bouc1 ndiv4 ;
  40. idiv1 = idiv1 + nc ;
  41. idiv2 = idiv2 + nc ;
  42. psi1 = (idiv1 * 180.) / nt ;
  43. psi2 = (idiv2 * 180.) / nt ;
  44. cospsi1 = cos psi1 ;
  45. sinpsi1 = sin psi1 ;
  46. tanpsi1 = sinpsi1 / cospsi1 ;
  47. tanphi1 = a * tanpsi1 / c ;
  48. phik1 = atg tanphi1 ;
  49. phik2 = psi1 ;
  50. phi1 = (beta * phik2) + ((1 - beta) * phik1) ;
  51. * phi1 = atg tanphi1 ;
  52. si (phi1 < 0.) ;
  53. phi1 = 180. + phi1 ;
  54. finsi ;
  55. cosphi1 = cos phi1 ;
  56. sinphi1 = sin phi1 ;
  57. tanphi1 = sinphi1 / cosphi1 ;
  58. talpha = (alpha * (1 - (c / a))) + (c / a) ;
  59. tanpsi1 = talpha * tanphi1 ;
  60. psi1 = atg tanpsi1 ;
  61. *
  62. si (ega idiv2 (nt /2)) ;
  63. phi2 = 90. ;
  64. cosphi2 = 0. ;
  65. sinphi2 = 1. ;
  66. sinon ;
  67. cospsi2 = cos psi2 ;
  68. sinpsi2 = sin psi2 ;
  69. tanpsi2 = sinpsi2 / cospsi2 ;
  70. tanphi2 = a * tanpsi2 / c ;
  71. phik1 = atg tanphi2 ;
  72. phik2 = psi2 ;
  73. phi2 = (beta * phik2) + ((1 - beta) * phik1) ;
  74. * phi2 = atg tanphi2 ;
  75. si (phi2 < 0.) ;
  76. phi2 = 180. + phi2 ;
  77. finsi ;
  78. cosphi2 = cos phi2 ;
  79. sinphi2 = sin phi2 ;
  80. tanphi2 = sinphi2 / cosphi2 ;
  81. talpha = (alpha * (1 - (c / a))) + (c / a) ;
  82. tanpsi2 = talpha * tanphi2 ;
  83. psi2 = atg tanpsi2 ;
  84. *
  85. finsi ;
  86. si (ega idiv2 nt) ;
  87. phi2 = 180. ;
  88. cosphi2 = -1. ;
  89. sinphi2 = 0. ;
  90. finsi ;
  91. xcour1 = c * cosphi1 ;
  92. ycour1 = a * sinphi1 ;
  93. zcour1 = 0. ;
  94. pcour1 = xcour1 ycour1 zcour1 ;
  95. *
  96. xcour2 = c * cosphi2 ;
  97. ycour2 = a * sinphi2 ;
  98. zcour2 = 0. ;
  99. pcour2 = xcour2 ycour2 zcour2 ;
  100. *
  101. p21 = p02 moins ox ;
  102. depl p21 tour psi1 o (0. 0. 1.) ;
  103. depl p21 plus pcour1 ;
  104. *
  105. p31 = p03 moins ox ;
  106. depl p31 tour psi1 o (0. 0. 1.) ;
  107. depl p31 plus pcour1 ;
  108. *
  109. p41 = p04 moins ox ;
  110. depl p41 tour psi1 o (0. 0. 1.) ;
  111. depl p41 plus pcour1 ;
  112. *
  113. p51 = p05 moins ox ;
  114. depl p51 tour psi1 o (0. 0. 1.) ;
  115. depl p51 plus pcour1 ;
  116. *
  117. p61 = p06 moins ox ;
  118. depl p61 tour psi1 o (0. 0. 1.) ;
  119. depl p61 plus pcour1 ;
  120. *
  121. p81 = p08 moins ox ;
  122. depl p81 tour psi1 o (0. 0. 1.) ;
  123. depl p81 plus pcour1 ;
  124. *
  125. *
  126. p12 = p01 moins ox ;
  127. depl p12 tour psi2 o (0. 0. 1.) ;
  128. depl p12 plus pcour2 ;
  129. *
  130. p22 = p02 moins ox ;
  131. depl p22 tour psi2 o (0. 0. 1.) ;
  132. depl p22 plus pcour2 ;
  133. *
  134. p32 = p03 moins ox ;
  135. depl p32 tour psi2 o (0. 0. 1.) ;
  136. depl p32 plus pcour2 ;
  137. *
  138. p42 = p04 moins ox ;
  139. depl p42 tour psi2 o (0. 0. 1.) ;
  140. depl p42 plus pcour2 ;
  141. *
  142. p52 = p05 moins ox ;
  143. depl p52 tour psi2 o (0. 0. 1.) ;
  144. depl p52 plus pcour2 ;
  145. *
  146. p62 = p06 moins ox ;
  147. depl p62 tour psi2 o (0. 0. 1.) ;
  148. depl p62 plus pcour2 ;
  149. *
  150. p72 = p07 moins ox ;
  151. depl p72 tour psi2 o (0. 0. 1.) ;
  152. depl p72 plus pcour2 ;
  153. *
  154. p82 = p08 moins ox ;
  155. depl p82 tour psi2 o (0. 0. 1.) ;
  156. depl p82 plus pcour2 ;
  157. *
  158. *
  159. si (idiv1 ega nd) ;
  160. p1 = p01 ;
  161. p2 = p02 ;
  162. p3 = p03 ;
  163. p4 = p04 ;
  164. p5 = p05 ;
  165. p6 = p06 ;
  166. p7 = p07 ;
  167. p8 = p08 ;
  168. finsi ;
  169. *
  170. p51m7 = plus p51 p7 / 2;
  171. p31m1 = plus p31 p1 / 2;
  172. p72m51 = plus p72 p51 / 2 ;
  173. p12m31 = plus p12 p31 / 2 ;
  174. *
  175. p71 = plus p7 p72 / 2 ;
  176. p11 = plus p1 p12 / 2 ;
  177. *
  178. opti elem seg2 ;
  179. *
  180. l1 = p1 d 1 p11 d 1 p12 ;
  181. l3 = p3 d 1 p31 d 1 p32 ;
  182. l5 = p5 d 1 p51 d 1 p52 ;
  183. l7 = p7 d 1 p71 d 1 p72 ;
  184. *
  185. opti elem cu20 ;
  186. *
  187. pr1 = manu pr15
  188. p5 (plus p5 p51 / 2) p51 p51m7 p7 p6
  189. p4 p41 p8
  190. p3 (plus p3 p31 / 2) p31 p31m1 p1 p2 ;
  191. *
  192. pr2 = manu pr15
  193. p51 (plus p51 p52 / 2) p52 p62 p72 p72m51
  194. p41 p42 p82
  195. p31 (plus p31 p32 / 2) p32 p22 p12 p12m31 ;
  196. *
  197. pr3 = manu pr15
  198. p7 p51m7 p51 p72m51 p72 p71
  199. p8 p41 p82
  200. p1 p31m1 p31 p12m31 p12 p11 ;
  201. *
  202. vp = pr1 et pr2 et pr3 ;
  203. *
  204. si (idiv1 ega nd) ;
  205. vtot = vp ;
  206. lsommet1 = l1 ;
  207. lsommet3 = l3 ;
  208. lsommet5 = l5 ;
  209. lsommet7 = l7 ;
  210. sinon ;
  211. vtot = vtot et vp ;
  212. lsommet1 = lsommet1 et l1 ;
  213. lsommet3 = lsommet3 et l3 ;
  214. lsommet5 = lsommet5 et l5 ;
  215. lsommet7 = lsommet7 et l7 ;
  216. finsi ;
  217. *
  218. *
  219. p1 = p12 ;
  220. p2 = p22 ;
  221. p3 = p32 ;
  222. p4 = p42 ;
  223. p5 = p52 ;
  224. p6 = p62 ;
  225. p7 = p72 ;
  226. p8 = p82 ;
  227. *
  228. * Calcul des angles aux sommets des triangles
  229. * -------------------------------------------
  230. *
  231. *alpha1 = ANGLE p72 p51 p71 ;
  232. v1= p51 moins p72; v2= p71 moins p72;
  233. norm_v1 = norm v1 ; norm_v2 = norm v2 ;
  234. ps =v1 pscal v2 ; cosalpha = ps / (norm_v1 * norm_v2) ;
  235. alpha1 = atg ((1 - (cosalpha ** 2)) ** .5) cosalpha ;
  236. *alpha2 = ANGLE p12 p11 p31 ;
  237. v1= p11 moins p12; v2= p31 moins p12;
  238. norm_v1 = norm v1 ; norm_v2 = norm v2 ;
  239. ps =v1 pscal v2 ; cosalpha = ps / (norm_v1 * norm_v2) ;
  240. alpha2 = atg ((1 - (cosalpha ** 2)) ** .5) cosalpha ;
  241. al1 = prog alpha1 alpha2 ;
  242. alpha_mi = mini al1 ;
  243. *
  244. *alpha3 = ANGLE p51 p51m7 p72m51 ;
  245. v1= p51m7 moins p51; v2= p72m51 moins p51;
  246. norm_v1 = norm v1 ; norm_v2 = norm v2 ;
  247. ps =v1 pscal v2 ; cosalpha = ps / (norm_v1 * norm_v2) ;
  248. alpha3 = atg ((1 - (cosalpha ** 2)) ** .5) cosalpha ;
  249.  
  250. *alpha4 = ANGLE p31 p31m1 p12m31 ;
  251. v1= p31m1 moins p31; v2= p12m31 moins p31;
  252. norm_v1 = norm v1 ; norm_v2 = norm v2 ;
  253. ps =v1 pscal v2 ; cosalpha = ps / (norm_v1 * norm_v2) ;
  254. alpha4 = atg ((1 - (cosalpha ** 2)) ** .5) cosalpha ;
  255. al2 = prog alpha3 alpha4 ;
  256. alpha_ma = maxi al2 ;
  257. *
  258. * -------------------------------------------
  259. *
  260. fin bouc1 ;
  261. *
  262. finproc vtot alpha_mi alpha_ma lsommet1 lsommet3 lsommet5
  263. lsommet7 ;
  264.  
  265.  

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