1
function [m,x]=secto3d(seclist,npas)
2
//Etant donnee une surface 3D decrite par une liste (seclist) de sections
3
// dans le plan (x,z), [m [,x]]=secto3d(seclist [,npas]) retourne une
4
// matrice m contenant une discretisation reguliere de la surface:
5
// la i-ieme ligne de la matrice m correspond a la i-ieme section,
6
// la j-ieme colonne de m correspondant a l'abscisse x(j).
7
//Chaque section seclist(i) est decrite par une matrice a 2 lignes,
8
// correspondants respectivement aux coordonnees selon l'axe des x et des z.
10
// Il est tout d'abord calcule les bornes extremales xmin,xmax sur
11
// l'axe des x pour l'ensemble des sections, l'intervalle [xmin,xmax]
12
// est ensuite decoupe en npas egaux, chaque section est ensuite interpolee
13
// lineairement en chaque point de cette discretisation.
15
// si npas est omis il est par defaut pris egal au nombre de sections.
17
// [m]=secto3d(seclist ,x) dans ce cas le vecteur x sera pris comme decoupage
18
// de l'axe des x pour l'ensemble des sections
22
//origine S Steer INRIA 1991
28
if rhs<2 then npas=n,end
29
if prod(size(npas))==1 then
30
sec=seclist(1);sec=sec(1,:)
31
xmax=maxi(sec);xmin=mini(sec)
33
sec=seclist(k);sec=sec(1,:)
34
xmax=maxi(xmax,maxi(sec))
35
xmin=mini(xmin,mini(sec))
38
x=[xmin-pas xmin:pas:xmax xmax+pas]
47
sec=[[x(1);sec(2,1)],sec,[x(nx);sec(2,ns)]]
48
m(k,:)=interpln(sec,x);