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 :
© Cast3M 2003 - All rights reserved.
Disclaimer