<?xml version="1.0" encoding="UTF-8"?>

<!--

 * Scilab ( http://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="contour2d">

    <refnamediv>

        <refname>contour2d</refname>

        <refpurpose>2次元プロット上に曲面の等高線を描画</refpurpose>

    </refnamediv>

    <refsynopsisdiv>

        <title>呼び出し手順</title>

        <synopsis>

            contour2d(x, y, z, nz, [style, strf, leg, rect, nax])

            contour2d(x, y, z, nz, &lt;opt_args&gt;)

        </synopsis>

    </refsynopsisdiv>

    <refsection>

        <title>引数</title>

        <variablelist>

            <varlistentry>

                <term>x,y</term>

                <listitem>

                    <para>
                        大きさ <literal>n1</literal> および <literal>n2</literal>

                        の実数行ベクトル: グリッド.
                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>z</term>

                <listitem>

                    <para>
                        大きさ<literal>(n1,n2)</literal>の実数行列,

                        グリッドにおける関数の値または曲面<literal>z=f(x,y)</literal>を定義する

                        Scilab関数.

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>nz</term>

                <listitem>

                    <para>等高線の値または等高線の数.</para>

                    <variablelist>

                        <varlistentry>

                            <term>

                                <literal>nz</literal> が整数の場合,

                            </term>

                            <listitem>

                                <para>

                                    この値は,

                                    以下のように <literal>zmin</literal>から

                                    <literal>zmax</literal> の範囲で等間隔に並んだ

                                    等高線の数を指定します:

                                </para>

                                <programlisting role="no-scilab-exec"><![CDATA[

z= zmin + (1:nz)*(zmax-zmin)/(nz+1)

 ]]></programlisting>

                                <para>

                                    <note>

                                        <literal>zmin</literal> および <literal>zmax</literal>

                                        の等高線は描画されない

                                        (一般にこれらは点となります)が,

                                        これらは以下のコマンドにより追加できる

                                        ことに注意してください.

                                    </note>

                                </para>

                                <programlisting role="no-scilab-exec"><![CDATA[

[im,jm] = find(z == zmin); // または zmax

plot2d(x(im)',y(jm)',-9,"000")

 ]]></programlisting>

                            </listitem>

                        </varlistentry>

                        <varlistentry>

                            <term>

                                <literal>nz</literal> がベクトルの場合,

                            </term>

                            <listitem>

                                <para>

                                    <literal>nz(i)</literal> は,

                                    <literal>i</literal>番目の等高線の値を指定します.

                                </para>

                            </listitem>

                        </varlistentry>

                    </variablelist>

                </listitem>

            </varlistentry>

            <varlistentry>

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

                <listitem>

                    <para>

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

                        ただし, <literal>key1</literal>,<literal>key2,...</literal>には以下のどれかを

                        指定できます:

                        <literal>style</literal>,

                        <literal>leg</literal>, <literal>rect</literal>,

                        <literal>nax</literal>, <literal>strf</literal> または

                        <literal>axesflag</literal> および

                        <literal>frameflag</literal>

                        (<link linkend="plot2d">plot2d</link>参照)

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>style, strf, leg, rect, nax</term>

                <listitem>

                    <para>

                        <link linkend="plot2d">plot2d</link>参照. 引数 <literal>style</literal> は,

                        等高線で使用される破線の形式または色を指定します.

                        その大きさは等高線の数と同じとする必要があります.

                    </para>

                </listitem>

            </varlistentry>

        </variablelist>

    </refsection>

    <refsection>

        <title>説明</title>

        <para>

            <literal>contour2d</literal> は,

            曲面<literal>z=f(x,y)</literal>の等高線を2次元プロットに描画します.

            <literal>f(x,y)</literal>の値は,

            <varname>x</varname> および <varname>y</varname>で指定されるグリッド点において

            行列<varname>z</varname>で指定します.

        </para>

        <para>

            等高線上に印字される浮動小数点数のフォーマットを

            <code>xset("fpf",string)</code>により変更することができます.

            ただし, <literal>string</literal> にはC言語の構文で

            (例えば <code>string="%.3f"</code>)でフォーマットを指定します.

            デフォルトのフォーマットに戻すには <code>string=""</code>と

            してください.

            出力を抑制するには, <code>string=" "</code>を使用してください.

            この最後の機能は, <link linkend="legends">legends</link>と組み合わせて

            等高線の数値を通常の等高線上ではなく,凡例に表示する場合に有用です.

            (例を参照)

        </para>

        <para>

            オプションの引数 <varname>style</varname>,

            <varname>strf</varname>, <varname>leg</varname>,

            <varname>rect</varname>, <varname>nax</varname>

            は,一連の命令<literal>key1=value1, key2=value2</literal>,...により

            指定できます.ただし, key は <literal>style</literal>,<literal>strf</literal>,

            <literal>leg</literal>,<literal>rect</literal>,<literal>nax</literal>

            とすることが可能です.

            この場合, 順番には特別な意味はありません.

        </para>

        <para>

            3次元曲面に等高線を描画するには,<literal>contour</literal> を使用してください.

        </para>

    </refsection>

    <refsection>

        <title>例</title>

        <programlisting role="example"><![CDATA[
contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11])
 ]]></programlisting>
        <scilab:image>
            contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11]);
        </scilab:image>
        <programlisting role="example"><![CDATA[
clf()
// 等高線の出力形式を変更
xset("fpf","%.2f")
contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11])
  ]]></programlisting>
        <scilab:image>
            xset("fpf","%.2f")
            contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11])
        </scilab:image>
        <programlisting role="example"><![CDATA[
// 等高線の値を凡例に表示
// いくつかの裏技を使用していることに注意してください...
x = linspace(0,4*%pi,80);
z = cos(x')*cos(x);
clf(); f=gcf();
xset("fpf"," ")
// 裏技 1: これにより等高線の値は
//         等高線上に描画されなくなります
f.color_map=jetcolormap(7);
// 裏技2: 等高線とインターフェイスをとることなく凡例を右に表示するために
// xmax 値を十分に大きくした rect を使用します.
contour2d(x,x,z,-0.75:0.25:0.75,frameflag=3,rect=[0,0,5*%pi,4*%pi])
// 裏技3: legendsを使用 (より実用的なlegend関数は等高線の一つの値が
//         2つの曲線により構成される場合に動作しないことに注意してください.
legends(string(-0.75:0.25:0.75),1:7,"lr");
xtitle("Some level curves of the function cos(x)cos(y)")
 ]]></programlisting>
        <scilab:image localized="true">
            x = linspace(0,4*%pi,80);
            z = cos(x')*cos(x);

            clf(); f=gcf();
            xset("fpf"," ")

            f.color_map=jetcolormap(7);

            contour2d(x,x,z,-0.75:0.25:0.75,frameflag=3,rect=[0,0,5*%pi,4*%pi])

            legends(string(-0.75:0.25:0.75),1:7,"lr");
            xtitle("Some level curves of the function cos(x)cos(y)")
        </scilab:image>

    </refsection>

    <refsection role="see also">

        <title>参照</title>

        <simplelist type="inline">

            <member>

                <link linkend="contour">contour</link>

            </member>

            <member>

                <link linkend="contour2di">contour2di</link>

            </member>

            <member>

                <link linkend="plot2d">plot2d</link>

            </member>

        </simplelist>

    </refsection>

</refentry>

