<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( https://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) ENPC - Jean-Philippe Chancelier
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="Sgrayplot" xml:lang="pt">
    <refnamediv>
        <refname>Sgrayplot</refname>
        <refpurpose>esboço 2d suave de uma superfície utilizando
            cores
        </refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Seqüência de Chamamento</title>
        <synopsis>Sgrayplot(x,y,z,&lt;opt_args&gt;)
            Sgrayplot(x,y,z [,strf, rect, nax, zminmax, colminmax, mesh, colout])
        </synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Parâmetros</title>
        <variablelist>
            <varlistentry>
                <term>x,y</term>
                <listitem>
                    <para>vetores linhas de reais de tamanhos n1 e n2. </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>z</term>
                <listitem>
                    <para>
                        matriz de reais de tamanho (n1,n2). <literal>z(i,j)</literal>
                        é o valor da superfície no ponto (x(i),y(j)).
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>&lt;opt_args&gt;</term>
                <listitem>
                    <para>representa uma seqüência de declarações
                        <literal>key1=value1,key2=value2</literal>,... onde
                        <literal>key1</literal>, <literal>key2,...</literal> podem ser um
                        dos seguintes: strf, rect, nax, zminmax, colminmax, mesh,
                        colout.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>strf</term>
                <listitem>
                    <para>
                        é um string de comprimento 3 <literal>"xyz"</literal> (por
                        padrão <literal>strf= "081"</literal>)
                    </para>
                    <variablelist>
                        <varlistentry>
                            <term>x</term>
                            <listitem>
                                <para>controla a exibição de legendas</para>
                                <variablelist>
                                    <varlistentry>
                                        <term>x=0</term>
                                        <listitem>
                                            <para>sem legendas. </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>x=1</term>
                                        <listitem>
                                            <para>legendas são exibidas. Elas são dadas pelo
                                                argumento opcional <literal>leg</literal>.
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                </variablelist>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>y</term>
                            <listitem>
                                <para>controla a computação dos intervalos de coordenadas
                                    reais a partir dos valores mínimos requeridos. Intervalos
                                    reais podem ser maiores que os requerimentos mínimos.
                                </para>
                                <variablelist>
                                    <varlistentry>
                                        <term>y=0</term>
                                        <listitem>
                                            <para>sem computação, o esboço utiliza a escala anterior
                                                (ou padrão)
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>y=1</term>
                                        <listitem>
                                            <para>a partir do argumento rect </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>y=2</term>
                                        <listitem>
                                            <para>a partir dos valores mínimo/máximo dos dados x e y
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>y=3</term>
                                        <listitem>
                                            <para>construídos para uma escala isométrica a partir do
                                                argumento rect 
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>y=4</term>
                                        <listitem>
                                            <para>construídos para uma escala isométrica a partir
                                                dos valores mínimo/máximo dos dados x e y 
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>y=5</term>
                                        <listitem>
                                            <para>aumentados para obtenção de bons eixos a partir do
                                                argumento rect
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>y=6</term>
                                        <listitem>
                                            <para>aumentados para obtenção de bons eixos a partir
                                                dos valores mínimo/máximo dos dados x e y 
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>y=7</term>
                                        <listitem>
                                            <para>como y= 1 mas os anteriores são redesenhados para
                                                se utilizar a nova escala 
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>y=8</term>
                                        <listitem>
                                            <para>lcomo y= 2 mas os anteriores são redesenhados para
                                                se utilizar a nova escala
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                </variablelist>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>z</term>
                            <listitem>
                                <para>controla a exibição de informação na moldura ao redor do
                                    esboço. Se eixos são requeridos, o número de tiques pode ser
                                    especificado pelo argumento opcional
                                    <literal>nax</literal>.
                                </para>
                                <variablelist>
                                    <varlistentry>
                                        <term>z=0</term>
                                        <listitem>
                                            <para>nada é desenhado ao redor do esboço. </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>z=1</term>
                                        <listitem>
                                            <para>eixos são desenhados, o eixo y é exibido à
                                                esquerda. 
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>z=2</term>
                                        <listitem>
                                            <para>o esboço é cercado por uma caixa sem tiques.
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>z=3</term>
                                        <listitem>
                                            <para>eixos são desenhados, o eixo y é exibido à
                                                direita.
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>z=4</term>
                                        <listitem>
                                            <para>eixos são desenhados centrados no meio da caixa de
                                                moldura. 
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                    <varlistentry>
                                        <term>z=5</term>
                                        <listitem>
                                            <para>eixos são desenhados cruzando-se no ponto
                                                <literal>(0,0)</literal>. Se o ponto
                                                <literal>(0,0)</literal> não estiver dentro da moldura,
                                                os eixos não aparecerão no gráfico.
                                            </para>
                                        </listitem>
                                    </varlistentry>
                                </variablelist>
                            </listitem>
                        </varlistentry>
                    </variablelist>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>rect</term>
                <listitem>
                    <para>este argumento é utilizado quando o segundo caractere y do
                        argumento <literal>strf</literal> é 1, 3 ou 5. É um vetor linha de
                        tamanho quatro e fornece a dimensão da moldura:
                        <literal>rect=[xmin,ymin,xmax,ymax]</literal>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>nax</term>
                <listitem>
                    <para>este argumento opcional é utilizado quando o terceiro
                        caractere z do argumento <literal>strf</literal> ié 1. É um vetor
                        linha de quatro entradas <literal>[nx,Nx,ny,Ny]</literal> onde
                        <literal>nx</literal> (<literal>ny</literal>) é o número de
                        sub-graduações no eixo x (y) axis e <literal>Nx</literal>
                        (<literal>Ny</literal>) é o número de graduações no eixo x
                        (y).
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>zminmax, colminmax, mesh, colout</term>
                <listitem>
                    <para>
                        ver <link linkend="fec">fec</link>.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Descrição</title>
        <para>
            <literal>Sgrayplot</literal> é o mesmo que
            <literal>grayplot</literal> mas o esboço é suavizado. A função
            <literal>fec</literal> é utilizada para suavização. A superfície é
            esboçada assumindo-se que é linear em um conjunto de triângulos
            construídos a partir do grid (aqui, com n1=5, n2=3):
        </para>
        <programlisting role=""><![CDATA[
_____________
| /| /| /| /|
|/_|/_|/_|/_|
| /| /| /| /|
|/_|/_|/_|/_|
 ]]></programlisting>
        <para>
            A função <link linkend="colorbar">colorbar</link> pode ser utilizada
            para se visualizar a escala de cores.
        </para>
        <para>
            O parâmetro <literal>zminmax</literal> é útil para propósitos de
            animação (veja um exemplo depois) e o parâmetro
            <literal>colminmax</literal> permite que o usuário escolha uma parte do
            mapa de cores corrente (ver a página de ajuda de <link linkend="fec">fec</link>).
        </para>
        <para>
            Entre com o comando <literal>Sgrayplot()</literal> para visualizar
            uma demonstração.
        </para>
    </refsection>
    <refsection>
        <title>Exemplos</title>
        <programlisting role="example"><![CDATA[
// exemplo #1
x=-10:10; y=-10:10;m =rand(21,21);
clf()
gcf().color_map = hot(64);
Sgrayplot(x,y,m, strf="011", rect=[-20,-20,20,20])

// exemplo #2
t=-%pi:0.1:%pi; m=sin(t)'*cos(t);
clf()
gcf().color_map = jet(64);
colorbar(-1,1)
Sgrayplot(t,t,m, strf="041")

// exemplo #3: exibindo animação de cos(t)*sin(x)sin(y).
n = 30;
nt = 100;
x = linspace(0,2*%pi,n);
y = linspace(0,%pi,n/2);
z = sin(x')*sin(y);
t = linspace(0,4*%pi,nt);
show_window(); clf()
f=gcf();
f.color_map=jet(64);
colorbar(-1,1)
Sgrayplot(x,y,cos(t(1))*z, strf="042", zminmax=[-1,1])
c=gce(),e=c.children
xtitle("Olhos de Kaa")
for i = 1:nt
  e.data(:,3)=matrix(cos(t(i))*z,-1,1);
end
 ]]></programlisting>
    </refsection>
    <refsection role="see also">
        <title>Ver Também</title>
        <simplelist type="inline">
            <member>
                <link linkend="fec">fec</link>
            </member>
            <member>
                <link linkend="fgrayplot">fgrayplot</link>
            </member>
            <member>
                <link linkend="grayplot">grayplot</link>
            </member>
            <member>
                <link linkend="Sfgrayplot">Sfgrayplot</link>
            </member>
            <member>
                <link linkend="colorbar">colorbar</link>
            </member>
        </simplelist>
    </refsection>
</refentry>
