<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) Serge Steer
 * Copyright (C) 2018 - Samuel GOUGEON
 *
 * 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="ru" xml:id="comet">
    <refnamediv>
        <refname>comet</refname>
        <refpurpose>двумерный график с анимированной кометой</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Синтаксис</title>
        <synopsis>
           comet(y)
           comet(x, y)
           comet(x, y, Lf)
           comet(x, fun)
           comet(x, fun, Lf)
           comet(...,"colors",c)
        </synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Аргументы</title>
        <variablelist>
            <varlistentry>
                <term>x</term>
                <listitem>
                    вещественный вектор или матрица. Если не указать, то предполагается,
                    что это вектор <literal>1:np</literal>, где <literal>np</literal> -
                    это количество точек кривой (см. ниже). В качестве матрицы каждый столбец
                    определяет абсциссы следа отдельной кометы.
                    <para/>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>y</term>
                <listitem>
                    вещественный вектор или матрица. В качестве матрицы каждый столбец
                    определяет ординаты следа отдельной кометы.
                    <para/>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>Lf</term>
                <listitem>
                    вещественный скаляр на интервале <literal>[0 1[</literal>. Значение по
                    умолчанию <literal>0.1</literal>. Он определяет ведущую часть следа кометы.
                    Самые последние точки <literal>k=Lf*np</literal> отображаются в более
                    толстой строке.
                    <para/>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>fun</term>
                <listitem>
                    Scilab-функция с последовательностью вызова <literal>y=fun(x)</literal>.
                    <varname>fun</varname> также может быть полиномом или рациональной дробью.
                    <para/>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>c</term>
                <listitem>
                    <literal>nc</literal> цвета <literal>nc</literal> хвостов комет.
                    Они могут определяться в виде вектора <literal>nc</literal> индексов цветов или
                    <link linkend="color_list">названий цветов</link> либо шестнадцатеричных кодов
                    цветов "#RRGGBB". Либо матрицей (ncx3) из векторов <literal>[r,g,b]</literal>
                    интенсивности Красного-Зелёного-Синего в интервале [0,1].
                    <para/>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Описание</title>
        <para>
            Если <literal>(x,y)</literal> являются двумя векторами с одинаковым количеством
            элементов, то эта функция нарисует двумерный график с анимированной кометой,
            показывающей движение кривой <literal>(x(1:k),y(1:k))</literal> для
            <literal>k</literal>, меняющейся от <literal>1</literal> до
            <literal>np=length(x)</literal>.
        </para>
        <para>
            График строится из трёх частей:
            <table>
                <tr><td><emphasis role="bold">голова</emphasis></td>
                    <td>
                        метка, которая показывает текущее положение <literal>(x(i),y(i))</literal>.
                    </td>
                </tr>
                <tr><td><emphasis role="bold">тело</emphasis></td>
                    <td>
                        состоящее из <literal>k=round(Lf*np)</literal> самых последних точек
                        траектории, отображаемое как более толстая часть трассы.
                    </td>
                </tr>
                <tr><td><emphasis role="bold">хвост</emphasis></td>
                    <td>
                        показывает часть кривой <literal>(x(1:i-k),y(1:i-k))</literal>.
                    </td>
                </tr>
            </table>
            <para>
                Инструкция <literal>comet(x, fun,...)</literal> эквивалентна инструкции
                <literal>comet(x, feval(x,fun),...)</literal>.
            </para>
            <para>
                Если <varname>x</varname> и <varname>y</varname> - матрицы
                одинаковых размеров, то анимированные кривые строятся для каждой пары
                <literal>(x(:,l),y(:,l))</literal>. В этом случае <literal>np</literal>
                - это количество строк матриц <varname>x</varname> и <varname>y</varname>.
            </para>
            <para>
                <literal>comet(...,"colors",c)</literal> может быть использована для
                установки цвета для каждой из траекторий.
            </para>
        </para>
    </refsection>
    <refsection>
        <title>Примеры</title>
        <programlisting role="example"><![CDATA[
// Одна комета по спирали:
t = linspace(0, 10*%pi, 500);
clf, isoview
comet(t.*sin(t), t.*cos(t), "colors", "orange")
    ]]></programlisting>
        <inlinemediaobject>
            <imageobject>
                <imagedata fileref="../../images/comet_1.png"/>
            </imageobject>
        </inlinemediaobject>
        <para/>
        <programlisting role="example"><![CDATA[
// Две одновременные кометы с цветами по умолчанию :
t = linspace(0,10*%pi,500)';
clf
comet(t.*sin(t), [t.*sin(2*t) t.*sin(3*t)])
    ]]></programlisting>
        <para/>
        <programlisting role="example"><![CDATA[
// Выбранные цвета :
t = linspace(0, 10*%pi, 500)';
clf
comet(t.*sin(t), [t.*cos(t) t.*sin(2*t)], "colors", ["orange" "mag"])
    ]]></programlisting>
        <inlinemediaobject>
            <imageobject>
                <imagedata fileref="../../images/comet_2.png"/>
            </imageobject>
        </inlinemediaobject>
        <para/>
        <programlisting role="example"><![CDATA[
function y = traj(x)
  y = 1.5*sin(x^2)
endfunction
clf
comet(linspace(0,5,500),traj)
    ]]></programlisting>
        <para/>
        <programlisting role="example"><![CDATA[
clf
comet(linspace(-2,4,500), (%s-3)/(%s^3+2*%s^2+1))
    ]]></programlisting>
    </refsection>
    <refsection role="see also">
        <title>Смотрите также</title>
        <simplelist type="inline">
            <member>
                <link linkend="comet3d">comet3d</link>
            </member>
            <member>
                <link linkend="paramfplot2d">paramfplot2d</link>
            </member>
            <member>
                <link linkend="realtime">realtime</link>
            </member>
            <member>
                <link linkend="color_list">названия цветов</link>
            </member>
        </simplelist>
    </refsection>
    <refsection>
        <title>История</title>
        <revhistory>
            <revision>
                <revnumber>5.3.2</revnumber>
                <revremark>
                    Введена функция comet().
                </revremark>
            </revision>
            <revision>
                <revnumber>6.1.0</revnumber>
                <revremark>
                  Цвета теперь могут быть указаны также их именами или шестнадцатеричными кодами
                  «#RRGGBB» или их интенсивностью [r g b] Красный-Зелёный-Синий.
                </revremark>
            </revision>
        </revhistory>
    </refsection>
</refentry>
