Download @FIS_2.procedur

Back to the list

   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