<?xml version="1.0" encoding="UTF-8"?>
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="contour2di">
    <refnamediv>
        <refname>contour2di</refname>
        <refpurpose>calcule les courbes de niveau d'une surface  </refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Séquence d'appel</title>
        <synopsis>[xc,yc] = contour2di(x,y,z,nz)</synopsis>
    </refsynopsisdiv>
    <refsection role="parameters">
        <title>Paramètres</title>
        <variablelist>
            <varlistentry>
                <term>x,y  </term>
                <listitem>
                    <para>deux vecteurs lignes de taille n1 et n2.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>z  </term>
                <listitem>
                    <para>matrice réelle de taille (n1,n2), les valeurs de la fonction.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>nz  </term>
                <listitem>
                    <para>valeurs des niveaux ou nombre de niveaux</para>
                    <variablelist>
                        <varlistentry>
                            <term/>
                            <listitem>
                                <para>
                                    Si <literal>nz</literal> est un entier, sa valeur définit le nombre de courbes
                                    de niveaux espacées régulièrement entre zmin et zmax :
                                </para>
                                <programlisting role=""><![CDATA[
z= zmin + (1:nz)*(zmax-zmin)/(nz+1)
 ]]></programlisting>
                                <para>
                                    Noter que les niveaux <literal>zmin</literal> et <literal>zmax</literal> ne sont pas
                                    dessinés (génériquement ils sont réduits à des points) mais
                                    peuvent être ajoutés avec

                                </para>
                                <programlisting role=""><![CDATA[
[im,jm] = find(z == zmin);     // ou zmax
plot2d(x(im)',y(jm)',-9,"000")
 ]]></programlisting>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term/>
                            <listitem>
                                <para>
                                    Si <literal>nz</literal>est un vecteur, <literal>nz(i)</literal> done la valeur de la ième courbe de niveau.
                                </para>
                            </listitem>
                        </varlistentry>
                    </variablelist>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>xc,yc  </term>
                <listitem>
                    <para>vecteurs de taille identique contenant la définition des contours. Voir ci-dessous pour les détails.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection role="description">
        <title>Description</title>
        <para>
            <literal>contour2di</literal> calcule les courbes de niveau (dans le plan) de la surface <literal>z=f(x,y)</literal>. Les valeurs de <literal>f(x,y)</literal> sont données par la matrice <literal>z</literal> aux points du plan définis par <literal>x</literal> et <literal>y</literal>.
        </para>
        <para>
            <literal>xc(1)</literal> contient le niveau associé à la première courbe de niveau,
            <literal>yc(1)</literal> contient le nombre de points <literal>N1</literal> définissant cette courbe
            et (<literal>xc(1+(1:N1))</literal>, <literal>yc(1+(1:N1))</literal> ) contiennent les coordonnées
            des points de la courbe.
            La seconde courbe commence à <literal>xc(2+N1)</literal> et <literal>yc(2+N1)</literal> et ainsi de suite.
        </para>
    </refsection>
    <refsection role="examples">
        <title>Exemples</title>
        <programlisting role="example"><![CDATA[
[xc,yc] = contour2di(1:10,1:10,rand(10,10),5);
k=1; n=yc(k); c=1;
while k+yc(k)<size(xc,'*')
  n = yc(k);
  plot2d(xc(k+(1:n)),yc(k+(1:n)),c)
  c = c+1;
  k = k+n+1;
end
 ]]></programlisting>
    </refsection>
    <refsection role="see also">
        <title>Voir aussi</title>
        <simplelist type="inline">
            <member>
                <link linkend="contour">contour</link>
            </member>
            <member>
                <link linkend="contour2d">contour2d</link>
            </member>
            <member>
                <link linkend="contour2dm">contour2dm</link>
            </member>
            <member>
                <link linkend="plot2d">plot2d</link>
            </member>
        </simplelist>
    </refsection>
</refentry>
