* POSTOU PROCEDUR LJ1 14/11/26 21:15:05 8301 **** 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; si logg; zz = tab1.pfz.i . 1; x1 = (kk1 * (zz - z11)) + x11; x2 = (kk2 * (zz - z21)) + x21; j = 1;k = 1; xx = tab1.pfx.i . j; 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; j = 1; k = k + 1; 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; 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; si ('<' d 0.); j = j + 1; fins; i = i + 1; fin bou1; * ** lisser encore plus * i = 2;j = 1; si ('<' d 0.); j = j + 1; fins; i = i + 1; fin bou1; * 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; 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; * * ** créer la ligne d'influence * ih = 3;tabcx = table;taboo = table;tabot = table; tabpl = table;tabpl.ppi = table;tabpl.ppf = table; 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'); p1 = xx1 yy zz1; p2 = xx2 yy zz2; fins; * si ('EGA' plan 'XY'); 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); * repeter bou1 (nl - 1); 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; j = 1;oo = 0.; j = j + 1; fin bou2; lisno = inser lisno &bou1 oo; listo = inser listo &bou1 ot; i = i + 1; fin bou1; * ** * 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