<?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
 * Copyright (C) 2020 - Samuel GOUGEON
 *
 * 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="champ" xml:lang="pt">
    <refnamediv>
        <refname>champ</refname>
        <refpurpose>esboço de campo vetorial 2d</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Seqüência de Chamamento</title>
        <synopsis>
            champ()  // example
            champ(x, y, fx, fy)
            champ(x, y, fx, fy, arfact)
            champ(x, y, fx, fy, arfact, rect)
            champ(x, y, fx, fy, arfact, rect, strf)
            champ(x, y, fx, fy, &lt;opt_args&gt;)
        </synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Parâmetros</title>
        <variablelist>
            <varlistentry>
                <term>x,y</term>
                <listitem>
                    <para>
                        vectors of decimal numbers, which define the grid of nodes
                        = coordinates of arrows starting points.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>fx</term>
                <listitem>
                    <para>uma matriz que descreve o componente x do campo vetorial.
                        <literal>fx(i,j)</literal> é o componente x do campo vetorial no
                        ponto <literal>(x(i),y(j))</literal>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>fy</term>
                <listitem>
                    <para>uma matriz que descreve o componente y do campo vetorial.
                        <literal>fy(i,j)</literal>é o componente y do campo vetorial no
                        ponto <literal>(x(i),y(j))</literal>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>&lt;opt_args&gt;</term>
                <listitem>
                    <para>representa a seqüência de declarações
                        <literal>key1=value1,key2=value2</literal>,... onde
                        <literal>key1</literal>, <literal>key2,...</literal> podem ser um
                        dos seguintes: arfact, rect, strf (ver abaixo).
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>arfact</term>
                <listitem>
                    <para>um argumento opcional do tipo real que fornece um fator de
                        escala para a exibição das cabeças das setas no esboço (o valor
                        padrão é 1.0).
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>rect</term>
                <listitem>
                    <para>
                        um vetor <literal>rect=[xmin,ymin,xmax,ymax]</literal> que
                        fornece as fronteiras da moldura gráfica à ser utilizada.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>strf</term>
                <listitem>
                    <para>um string de comprimento 3 "xyz" que possui o mesmo
                        significado do parâmetro <literal>strf</literal> de
                        <literal>plot2d</literal>. O primeiro caractere não tem efeito com
                        <literal>champ</literal>.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Descrição</title>
        <para>
            <literal>champ(…)</literal> plota um campo de vetores 2D com setas.
        </para>
        <para>
            By default, all arrows have the same color, and their length is
            proportional to the local intensity of the field (norm of vectors).
            In addition, all lengths are normalized according to the longest arrow.
        </para>
        <para>
            When setting <literal>gce().colored = "on"</literal>,
            each arrow becomes as long as possible in its cell, and is colored
            according to the local intensity of the field.
        </para>
        <para>
            After calling <literal>champ(…)</literal>, <literal>gce()</literal>
            returns the handle of the field of arrows, of type <literal>Champ</literal>,
            whose <link linkend="champ_properties">properties</link> can be post-processed.
        </para>
        <para>
            Entre com o comando <literal>champ()</literal> para visualizar um exemplo.
        </para>
    </refsection>
    <refsection>
        <title>Exemplos</title>
        <programlisting role="example"><![CDATA[
x = -4:6;
X = ndgrid(x);
[fx, fy] =  (rand(X)-0.5, rand(X)-0.5);

clf
gcf().color_map = jet(50);

// Field's intensity = arrows length
subplot(2,2,1)
champ(x, x, fx, fy)

// With bigger arrow heads
subplot(2,2,2)
champ(x, x, fx, fy, arfact=1.7)
title("arfact=1.7", "fontsize",3)

// Field's intensity = arrows color
xsetech([0 0.5 0.55 0.5])
champ(x, x, fx, fy, arfact=1.7)
gce().colored = "on";
title("arfact=1.7, .colored=""on""", "fontsize",3)
colorbar

// Field's intensity = color, + imposed boundaries
subplot(2,2,4)
champ(x, x, fx, fy, rect=[-5,-6,9,7],strf="011")
gce().colored = "on";
title("rect=[-5,-6,9,6], strf=""011"", .colored=""on""", "fontsize",3)

gcf().axes_size = [740 680];
    ]]></programlisting>
        <scilab:image>
            x = -4:6;
            X = ndgrid(x);
            [fx, fy] =  (rand(X)-0.5, rand(X)-0.5);

            clf
            gcf().color_map = jet(50);

            // Field's intensity = arrows length
            subplot(2,2,1)
            champ(x, x, fx, fy)

            // With bigger arrow heads
            subplot(2,2,2)
            champ(x, x, fx, fy, arfact=1.7)
            title("arfact=1.7", "fontsize",3)

            // Field's intensity = arrows color
            xsetech([0 0.5 0.55 0.5])
            champ(x, x, fx, fy, arfact=1.7)
            gce().colored = "on";
            title("arfact=1.7, .colored=""on""", "fontsize",3)
            L = sqrt(fx.^2 + fy.^2);
            colorbar(min(L), max(L));

            // Field's intensity = color, + imposed boundaries
            subplot(2,2,4)
            champ(x, x, fx, fy, rect=[-5,-6,9,7],strf="011")
            gce().colored = "on";
            title("rect=[-5,-6,9,6], strf=""011"", .colored=""on""", "fontsize",3)

            gcf().axes_size = [740 680];
        </scilab:image>
        <programlisting role="example"><![CDATA[
x = -1.2:0.11:0.7;
y = -1:0.11:0.5;
[X, Y] = ndgrid(x, y);
[fx, fy] = (2*X, 2*Y);

clf
xsetech([0 0 0.45 1])
champ(x, y, fx, fy)
title(".colored = ""off"" (default)", "fontsize",3)
xsetech([0.45 0 0.55 1])
champ(x, y, fx, fy)
title(".colored = ""on""", "fontsize",3)
gce().colored = "on";

gcf().color_map = jet(100);
colorbar
]]></programlisting>
        <scilab:image>
            x = -1.2:0.11:0.7;
            y = -1:0.11:0.5;
            [X, Y] = ndgrid(x, y);
            [fx, fy] = (2*X, 2*Y);

            clf
            xsetech([0 0 0.45 1])
            champ(x, y, fx, fy)
            title(".colored = ""off"" (default)", "fontsize",3)
            xsetech([0.45 0 0.55 1])
            champ(x, y, fx, fy)
            title(".colored = ""on""", "fontsize",3)
            gce().colored = "on";

            gcf().color_map = jet(100);
            L = sqrt(fx.^2 + fy.^2);
            colorbar(min(L), max(L));

            gcf().axes_size = [720 340];
        </scilab:image>
    </refsection>
    <refsection role="see also">
        <title>Ver Também</title>
        <simplelist type="inline">
            <member>
                <link linkend="champ_properties">champ_properties</link>
            </member>
            <member>
                <link linkend="fchamp">fchamp</link>
            </member>
            <member>
                <link linkend="xarrows">xarrows</link>
            </member>
            <member>
                <link linkend="polyline_properties">Arrowed polyline</link>
            </member>
        </simplelist>
    </refsection>
</refentry>
