<?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="xarrows">

    <refnamediv>

        <refname>xarrows</refname>

        <refpurpose>2Dまたは3Dで矢印を描画</refpurpose>

    </refnamediv>

    <refsynopsisdiv>

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

        <synopsis>xarrows(nx, ny [,nz] [,arsize, color])</synopsis>

    </refsynopsisdiv>

    <refsection>

        <title>引数</title>

        <variablelist>

            <varlistentry>

                <term>nx, ny, nz</term>

                <listitem>

                    <para>同じ大きさの実数のベクトルまたは行列.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>arsize</term>

                <listitem>

                    <para>実数スカラー, 矢じりの大きさ.

                        デフォルト値は <varname>arsize</varname> を -1 に設定することにより得られます.

                    </para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>color</term>

                <listitem>

                    <para>行列またはスカラー.

                        <varname>color</varname>が正のスカラーの場合,

                        この値は全ての矢印に使用される色を指定します.

                        負のスカラーの場合,カレントの色が使用されます.

                        ベクトルの場合,<literal>color(i)</literal> は <literal>i</literal>番目の

                        矢印に使用される色を指定します.

                    </para>

                </listitem>

            </varlistentry>

        </variablelist>

    </refsection>

    <refsection>

        <title>説明</title>

        <para>

            <function>xarrows</function>は<varname>nx</varname>,

            <varname>ny</varname>および <varname>nz</varname>により指定される矢印の集合を描画します.

            <varname>nz</varname>が指定されない場合, 2Dで矢印を描画します.

            <varname>nx</varname>, <varname>ny</varname>および<varname>nz</varname>

            がベクトルの場合,i番目の矢印は

            <literal>(nx(i),ny(i),nz(i))--&gt;(nx(i+1),ny(i+1),nz(i+1))</literal>

            により定義されます.

            <varname>nx</varname> および <varname>ny</varname> が行列の場合:

        </para>

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

nx=[xi_1 x1_2 ...; xf_1 xf_2 ...]

ny=[yi_1 y1_2 ...; yf_1 yf_2 ...]

nz=[zi_1 z1_2 ...; zf_1 zf_2 ...]

 ]]></programlisting>

        <para>

            <literal>k</literal>番目の矢印は,

            <literal>(xi_k,yi_k,zi_k)--&gt;(xf_k,yf_k,zf_k)</literal>

            により定義されます.

        </para>

        <para>

            <function>xarrows</function>は,

            <function>plot2d</function>のような高レベル関数をコールすることにより

            設定可能なカレントのグラフィックスケールを使用します.

        </para>

    </refsection>

    <refsection>

        <title>例</title>

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

x = 2*%pi*(0:7)/8

x1 = [sin(x); 9*sin(x)];

y1 = [cos(x); 9*cos(x)];

plot2d([-10,10], [-10,10], [-1,-1], "022")

gca().clip_state = "clipgrf";

xarrows(x1, y1, -1, [1:7,9]) //8番目の色は白

gca().clip_state = "off";

 ]]></programlisting>

        <scilab:image>

            x = 2*%pi*(0:7)/8

            x1 = [sin(x); 9*sin(x)];

            y1 = [cos(x); 9*cos(x)];

            plot2d([-10,10], [-10,10], [-1,-1], "022")
            
            gca().clip_state = "clipgrf";
            
            xarrows(x1, y1, -1, [1:7,9])
            
            gca().clip_state = "off";
            
        </scilab:image>

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

N = 100;

zi = linspace(-1,2,N);

zf = zi;

theta = (zi - min(zi))/(max(zi)-min(zi))*720;

xi = zeros(1,N);  xf = cosd(theta);

yi = zeros(1,N);  yf = sind(theta);

clf, plot3d([-1 1 1 1],[-1 -1 -1 1],[-1 -1 2 2])

xarrows([xi;xf],[yi;yf],[zi;zf],0.7, 32*rand(1,N))

 ]]></programlisting>

        <scilab:image>

            N = 100;

            zi = linspace(-1,2,N);

            zf = zi;

            theta = (zi - min(zi))/(max(zi)-min(zi))*720;

            xi = zeros(1,N);  xf = cosd(theta);

            yi = zeros(1,N);  yf = sind(theta);

            clf, plot3d([-1 1 1 1],[-1 -1 -1 1],[-1 -1 2 2])

            xarrows([xi;xf],[yi;yf],[zi;zf],0.7, 32*rand(1,N))

        </scilab:image>

    </refsection>

    <refsection>

        <title>履歴</title>

        <revhistory>

            <revision>

                <revnumber>5.5.0</revnumber>

                <revremark>矢印を3次元で描画できるようになりました.</revremark>

            </revision>

        </revhistory>

    </refsection>

</refentry>

