Numérotation des lignes :

* POSTOU    PROCEDUR  LJ1       14/11/26    21:15:05     8301           DEBPROC POSTOU TAB1*TABLE DIST/FLOTTANT; **** brafis ************************** x11 = tab1.zgi.x . 1;x12 = tab1.zgi.x . 2;z11 = tab1.zgi.z . 1;z12 = tab1.zgi.z . 2;kk1 = (x12 - x11)/(z12 - z11);*x21 = tab1.zgf.x . 1;x22 = tab1.zgf.x . 2;z21 = tab1.zgf.z . 1;z22 = tab1.zgf.z . 2;kk2 = (x22 - x21)/(z22 - z21);*** reperer les points dans la zone*i = 1;tabx = table;tabz = table;tabo = table;repeter bou1 (dime tab1.pfx);tabx.i = prog;tabz.i = prog;tabo.i = prog;logg = '>' (dime tab1.pfx.i) 0;si logg;zz = tab1.pfz.i . 1;x1 = (kk1 * (zz - z11)) + x11;x2 = (kk2 * (zz - z21)) + x21;j = 1;k = 1;repeter bou2 (dime tab1.pfx.i);xx = tab1.pfx.i . j;si tab1.droi;log1 = ('<' xx x2) et ('>' xx x1);sinon;log1 = ('>' xx x2) et ('<' xx x1);fins;si log1;tabx.i = inser tabx.i k xx;tabz.i = inser tabz.i k zz;tabo.i = inser tabo.i k (tab1.pfo.i . j);k = k + 1;fins;j = j + 1;fin bou2; fins;i = i + 1;fin bou1;*** reperer les points avec l'ouverture maximale*i = 1;k = 0;tabxx = table;tabzz = table;tabii = table;taboo = table;repeter bou1 (dime tabx);si ('NEG' (dime tabx.i) 0);j = 1;k = k + 1;aa = maxi tabo.i;repeter bou2 (dime tabx.i);si('EGA' (aa - (extr tabo.i j)) 0.);tabxx.k = extr tabx.i j;tabzz.k = extr tabz.i j;tabii.k = i;taboo.k = aa;fins;j = j + 1;fin bou2;fins;i = i + 1;fin bou1;*** lisser le chemin*i = 2;j = 1;lisx = prog;lisz = prog;lisi = prog;liso = prog;repeter bou1 ((dime tabxx) - 1);dd = tabxx.i - tabxx.(i - 1);*list dd;si ('<' dd 0.);*list tabxx.(i - 1);lisx = inser lisx j tabxx.(i - 1);lisz = inser lisz j tabzz.(i - 1);lisi = inser lisi j tabii.(i - 1);liso = inser liso j taboo.(i - 1);j = j + 1;fins;i = i + 1;fin bou1;lisx = inser lisx j tabxx.(i - 1);lisz = inser lisz j tabzz.(i - 1);lisi = inser lisi j tabii.(i - 1);liso = inser liso j taboo.(i - 1);*** lisser le chemin pas-encore-lissé*i = 2;j = 1;lisxx = prog; liszz = prog;lisoo = prog; lisii = prog;repeter bou1 ((dime lisx) - 1);d = (extr lisx i) - (extr lisx (i - 1));si ('<' d 0.);lisxx = inser lisxx j (extr lisx (i - 1));liszz = inser liszz j (extr lisz (i - 1));lisii = inser lisii j (extr lisi (i - 1));lisoo = inser lisoo j (extr liso (i - 1));j = j + 1;fins;i = i + 1;fin bou1;lisxx = inser lisxx j (extr lisx (i - 1));liszz = inser liszz j (extr lisz (i - 1));lisii = inser lisii j (extr lisi (i - 1));lisoo = inser lisoo j (extr liso (i - 1));*** lisser encore plus*i = 2;j = 1;lisxxx = prog; liszzz = prog;lisooo = prog; lisiii = prog;repeter bou1 ((dime lisxx) - 1);d = (extr lisxx i) - (extr lisxx (i - 1));si ('<' d 0.);lisxxx = inser lisxxx j (extr lisxx (i - 1));liszzz = inser liszzz j (extr liszz (i - 1));lisiii = inser lisiii j (extr lisii (i - 1));lisooo = inser lisooo j (extr lisoo (i - 1));j = j + 1;fins;i = i + 1;fin bou1;lisxxx = inser lisxxx j (extr lisxx (i - 1));liszzz = inser liszzz j (extr liszz (i - 1));lisiii = inser lisiii j (extr lisii (i - 1));lisooo = inser lisooo j (extr lisoo (i - 1));*tab1.che = table;tab1.che.x = lisxxx;tab1.che.z = liszzz;tab1.che.n = lisiii;tab1.che.o = lisooo; **** dirfis ************************** lisx = tab1.che.x;lisz = tab1.che.z;i = 3;tabnorm = table;tabnorm.x = table;tabnorm.z = table;tabdirn = table;repeter bou1 ((dime lisx) - 2);xx = extr lisx (i - 1);zz = extr lisz (i - 1);vx1 = (extr lisx i) - (extr lisx (i - 1));vx2 = (extr lisx (i - 2)) - (extr lisx (i - 1));vz1 = (extr lisz i) - (extr lisz (i - 1));vz2 = (extr lisz (i - 2)) - (extr lisz (i - 1));vv1 = ((vx1 * vx1) + (vz1 * vz1))**(0.5);si ('EGA' vv1 0.);vv1 = 1.;fins;vx1 = vx1/vv1;vz1 = vz1/vv1;*vv2 = ((vx2 * vx2) + (vz2 * vz2))**(0.5);si ('EGA' vv2 0.);vv2 = 1.;fins;vx2 = vx2/vv2;vz2 = vz2/vv2;*vxn = vx1 + vx2;vzn = vz1 + vz2;si ('>' (abs vxn) 1.e-9);kn = vzn/vxn;sinon;vxn = (-1) * vz1;vzn = vx1;*kn = vzn/vxn;fins;vvn = ((vxn**2) + (vzn**2))**(0.5);si ('EGA' vvn 0.);vvn = 1.;fins;vxn1 = vxn/vvn;vzn1 = vzn/vvn;*kk = (1 + (kn**2))**(0.5);xn1 = xx + (dist/kk);xn2 = xx - (dist/kk);*zn1 = (kn * (xn1 - xx)) + zz;zn2 = (kn * (xn2 - xx)) + zz;*tabdirn . (i - 2) = table;tabdirn . (i - 2) . 1 = vxn1;tabdirn . (i - 2) . 2 = vzn1;*tabnorm . x . i = table;tabnorm . z . i = table;tabnorm.x . i . 1 = xn1;tabnorm.x . i . 2 = xn2;tabnorm.z . i . 1 = zn1;tabnorm.z . i . 2 = zn2;i = i + 1;fin bou1;*tab1.normm = tabnorm;tab1.dirnn = tabdirn; **** ouvsfi ***************************tain = tab1.critt ;plan = tab1.pla;*opti elem seg2;*** créer la ligne d'influence *ih = 3;tabcx = table;taboo = table;tabot = table;tabpl = table;tabpl.ppi = table;tabpl.ppf = table;repeter bouih (dime tab1.normm.x);xx1 = tab1.normm.x.ih . 1;xx2 = tab1.normm.x.ih . 2;zz1 = tab1.normm.z.ih . 1;zz2 = tab1.normm.z.ih . 2; vx1 = xx2 - xx1;vz1 = zz2 - zz1;vv1 = ((vx1**2) + (vz1**2))**(0.5);si ('EGA' vv1 0.);vv1 = 1.;fins;vx1 = vx1/vv1;vz1 = vz1/vv1;*si ('EGA' plan 'ZX');yy = coor 2 tab1.poi ;p1 = xx1 yy zz1;p2 = xx2 yy zz2;fins;*si ('EGA' plan 'XY');yy = coor 3 tab1.poi;p1 = xx1 zz1 yy;p2 = xx2 zz2 yy;fins;*tabpl.ppi.(ih - 2) = p1;tabpl.ppf.(ih - 2) = p2;*l1 = droit p1 p2 dini (tain * tab1.telx) dfin (tain * tab1.telx);dep1 = chan cham tab1.deplacements.(tab1.pas) tab1.geo;dep2 = proi l1 dep1;l2 = chan poi1 l1;nl = nbel l2;*i = 2;lisx = prog; liso = prog;lisot = prog;repeter bou1 (nl - 1);poil1 = l2 poin (i - 1);depx1 = extr dep2 ux poil1;depz1 = extr dep2 uz poil1; poil2 = l2 poin i;depx2 = extr dep2 ux poil2;depz2 = extr dep2 uz poil2; sdepx = depx2 - depx1;sdepz = depz2 - depz1;ouvnn = (sdepx * vx1) + (sdepz * vz1);ouvnn = abs ouvnn;ouvtt = (sdepx * vz1) - (sdepz * vx1);ouvtt = abs ouvtt; lisx = inser lisx &bou1 i;liso = inser liso &bou1 ouvnn;lisot = inser lisot &bou1 ouvtt; i = i + 1;fin bou1; tabcx.(ih - 2) = lisx;taboo.(ih - 2) = liso;tabot.(ih - 2) = lisot; ih = ih + 1;fin bouih;*tab1.ouvnx = tabcx;tab1.ouvno = taboo; tab1.ouvto = tabot; **** ouvfin *********************** tabx = tab1.che.x;tabz = tab1.che.z;tabo = tab1.ouvno;tabot = tab1.ouvto;i = 1;lisno = prog;lisii = prog;listo = prog;repeter bou1 (dime tabo);j = 1;oo = 0.;repeter bou2 (dime tabo.i);oo = oo + (extr tabo.i j);j = j + 1;fin bou2;ot = maxi tabot.i;lisno = inser lisno &bou1 oo;listo = inser listo &bou1 ot;i = i + 1;fin bou1;****i = 1;lisnx = prog; lisnz = prog;repeter bou1 (dime lisno);lisnx = inser lisnx i (extr tabx i);lisnz = inser lisnz i (extr tabz i);i = i + 1;fin bou1; tab1.fisnx = lisnx;tab1.fisnz = lisnz;tab1.fisno = lisno;tab1.fisto = listo; FINPROC;

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