<?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:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"  xml:lang="ja" xml:id="Sgrayplot">

    <refnamediv>

        <refname>Sgrayplot</refname>

        <refpurpose>色付きの曲面の2次元平滑化プロット</refpurpose>

    </refnamediv>

    <refsynopsisdiv>

        <title>呼び出し手順</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>引数</title>

        <variablelist>

            <varlistentry>

                <term>x,y</term>

                <listitem>

                    <para>大きさ n1 および n2の実数行ベクトル.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>z</term>

                <listitem>

                    <para>

                        大きさ (n1,n2)の実数行列. <literal>z(i,j)</literal> は

                        点(x(i),y(j))における曲面の値です.

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>&lt;opt_args&gt;</term>

                <listitem>

                    <para>

                        一連の命令<literal>key1=value1,key2=value2</literal>,...を表します.ただし,

                        <literal>key1</literal>,<literal>key2,...</literal>は以下のどれかとすることができます:

                        strf, rect, nax, zminmax, colminmax, mesh, colout.

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>strf</term>

                <listitem>

                    <para>

                        <literal>"xyz"</literal>は長さ3の文字列です (デフォルトでは

                        <literal>strf= "081"</literal>)

                    </para>

                    <variablelist>

                        <varlistentry>

                            <term>x</term>

                            <listitem>

                                <para>表題の表示を制御します.</para>

                                <variablelist>

                                    <varlistentry>

                                        <term>x=0</term>

                                        <listitem>

                                            <para>表題なし.</para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>x=1</term>

                                        <listitem>

                                            <para>表題が表示されます. 表題は

                                                オプションの引数 <literal>leg</literal>で指定されます.

                                            </para>

                                        </listitem>

                                    </varlistentry>

                                </variablelist>

                            </listitem>

                        </varlistentry>

                        <varlistentry>

                            <term>y</term>

                            <listitem>

                                <para>指定された最小限の値による実際の座標の範囲の計算を制御します.

                                    実際の範囲は指定された最小限の範囲よりも大きくすることができます.

                                </para>

                                <variablelist>

                                    <varlistentry>

                                        <term>y=0</term>

                                        <listitem>

                                            <para>計算は行われず,プロットは前(またはデフォルト)のスケール

                                                を使用します

                                            </para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>y=1</term>

                                        <listitem>

                                            <para>rect 引数による</para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>y=2</term>

                                        <listitem>

                                            <para>x, y データの最小値/最大値による</para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>y=3</term>

                                        <listitem>

                                            <para>rect引数に基づく等値スケールによる

                                                arg

                                            </para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>y=4</term>

                                        <listitem>

                                            <para>x, y データの最小値/最大値に基づく

                                                等値スケールによる

                                            </para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>y=5</term>

                                        <listitem>

                                            <para>rect引数に基づき見栄えを良くするために軸を拡大</para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>y=6</term>

                                        <listitem>

                                            <para>x, y データの最小値/最大値に基づき

                                                見栄えを良くするために軸を拡大

                                            </para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>y=7</term>

                                        <listitem>

                                            <para>y=1と似ていますが,前のプロットが

                                                新しいスケールで再描画されます

                                            </para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>y=8</term>

                                        <listitem>

                                            <para>y=2と似ていますが,前のプロットが

                                                新しいスケールで再描画されます

                                            </para>

                                        </listitem>

                                    </varlistentry>

                                </variablelist>

                            </listitem>

                        </varlistentry>

                        <varlistentry>

                            <term>z</term>

                            <listitem>

                                <para>

                                    プロットの周囲のフレームへの情報表示を制御します.

                                    軸を指定した場合,目盛の数をオプション引数<literal>nax</literal>

                                    により指定できます.

                                </para>

                                <variablelist>

                                    <varlistentry>

                                        <term>z=0</term>

                                        <listitem>

                                            <para>プロットの周辺には何も表示されません.</para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>z=1</term>

                                        <listitem>

                                            <para>軸が描画され, y=axis が左に表示されます.</para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>z=2</term>

                                        <listitem>

                                            <para>プロットは目盛を付けずに矩形で囲われます.</para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>z=3</term>

                                        <listitem>

                                            <para>軸が描画され, y=axis が右に表示されます.</para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>z=4</term>

                                        <listitem>

                                            <para>軸がフレームボックスの中央に矩形を付けずに描画されます.</para>

                                        </listitem>

                                    </varlistentry>

                                    <varlistentry>

                                        <term>z=5</term>

                                        <listitem>

                                            <para>軸がフレームボックスの中央に矩形を付けて描画されます.</para>

                                        </listitem>

                                    </varlistentry>

                                </variablelist>

                            </listitem>

                        </varlistentry>

                    </variablelist>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>rect</term>

                <listitem>

                    <para>

                        この引数は引数 <literal>strf</literal>の 2番目の文字 y が 1, 3 または 5の場合に

                        使用されます.大きさ4の行ベクトルで以下のようにフレームの大きさを指定します:

                        <literal>rect=[xmin,ymin,xmax,ymax]</literal>.

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>nax</term>

                <listitem>

                    <para>

                        この引数は引数 <literal>strf</literal>の 3番目の文字 z が 1,の場合に

                        使用されます.要素数4の行ベクトル<literal>[nx,Nx,ny,Ny]</literal>で,

                        <literal>nx</literal> (<literal>ny</literal>)は x (y)軸の

                        サブグラデーションの数,

                        <literal>Nx</literal> (<literal>Ny</literal>) は x (y) 軸の

                        グラデーションの数です.

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>zminmax, colminmax, mesh, colout</term>

                <listitem>

                    <para>

                        <link linkend="fec">fec</link>参照.

                    </para>

                </listitem>

            </varlistentry>

        </variablelist>

    </refsection>

    <refsection>

        <title>説明</title>

        <para>

            <literal>Sgrayplot</literal> は <literal>grayplot</literal> と同じですが,

            プロットは平滑化されます.

            関数 <literal>fec</literal> が平滑化に使用されます.

            曲面のプロットの際には,

            グリッド(ここでは, n1=5, n2=3)により構築される一連の三角形の上では線形であると仮定されます:

        </para>

        <programlisting role=""><![CDATA[

_____________

| /| /| /| /|

|/_|/_|/_|/_|

| /| /| /| /|

|/_|/_|/_|/_|

 ]]></programlisting>

        <para>

            関数 <link linkend="colorbar">colorbar</link> を

            使用して,カラースケールを表示することが可能です.

        </para>

        <para>

            パラメータ <literal>zminmax</literal> はアニメーション用(下記例参照)に

            有用です.

            パラメータ <literal>colminmax</literal> によりユーザがカレントの

            カラーマップの一部を選択することが可能になります(<link linkend="fec">fec</link>

            のヘルプ参照).

        </para>

        <para>

            デモを参照するためには <literal>Sgrayplot()</literal> コマンドを入力してください.

        </para>

    </refsection>

    <refsection>

        <title>例</title>

        <programlisting role="example"><![CDATA[

// 例 #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])

 ]]></programlisting>

        <scilab:image>

            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])

        </scilab:image>

        <programlisting role="example"><![CDATA[

// 例 #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")

]]></programlisting>

        <scilab:image>

            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")

        </scilab:image>

        <programlisting role="example"><![CDATA[

// 例 #3: アニメーション表示 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("Kaa''s eyes")

for i = 1:nt

  e.data(:,3)=matrix(cos(t(i))*z,-1,1);

end

 ]]></programlisting>

        <scilab:image>

            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("Kaa''s eyes")

            for i = 1:nt

            e.data(:,3)=matrix(cos(t(i))*z,-1,1);

            end

        </scilab:image>

    </refsection>

    <refsection role="see also">

        <title>参照</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>

