# comet

двумерный график с анимированной кометой

## Последовательность вызова

    comet(y)

    comet(x, y)

    comet(x, fun)

    comet(x, y, p)

    comet(x, fun, p)

    comet(...,"colors",c)

## Аргументы

x

  вещественный вектор или матрица. Если не указать, то предполагается, что это вектор `1:ny`, где `ny` - это количество точек кривой (см. ниже).

y

  вещественный вектор или матрица.

p

  вещественный скаляр на интервале `[0 1[`. Значение по умолчанию `0.1`.

fun

  Scilab-функция с последовательностью вызова `y=fun(x)`. `fun` также может быть полиномом или рациональной дробью.

c

  вектор из `ny` индексов цветов.

## Описание

Если `(x,y)` являются двумя векторами с одинаковым количеством элементов, то эта фукнция нарисует двумерный график с анимированной кометой, показывающей движение кривой `(x(1:k),y(1:k))` для `k`, меняющейся от `1` до `size(x,'*')`.

График строится из трёх частей:

голова

  метка, которая показыает текущее положение `(x(i),y(i))`.

тело

  показывает бегущую кривую, следующую за головой: `(x(i-k:i),y(i-k:i))` часть кривой.

хвост

  показывает часть кривой `(x(1:i-k),y(1:i-k))`.

Инструкция `comet(x, fun,...)` эквивалентна инструкции `comet(x, feval(x,fun),...)`.

`comet(...,p)` может быть использована для установки относительной длины тела. `k` определяется как `k = round(p*ny)`.

Если `y` является матрицей, то для каждой пары `(x,y(:,l))` строятся анимированные кривые. В этом случае `ny` - это количество строк матрицы `y`.

Если `x` и `y` - матрицы одинаковых размеров, то анимированные кривые строятся для каждой пары `(x(:,l),y(:,l))`. В этом случае `ny` - это количество строк матриц `x` и `y`.

`comet(...,"colors",c)` может быть использована для установки цвета для каждой из кривых.

## Примеры

    t = linspace(0,10*%pi,500);
    clf();set(gca(),"isoview","on"); // установка равновеликого масштаба осей
    comet(t.*sin(t),t.*cos(t))

    t = linspace(0,10*%pi,500)';
    clf();comet(t.*sin(t),[t.*sin(2*t) t.*sin(3*t)])

    t = linspace(0,10*%pi,500)';
    clf();comet(t.*sin(t),[t.*sin(2*t) t.*sin(3*t)],"colors",[3 5])

    function y=traj(x),y=1.5*sin(x^2),endfunction
    clf();comet(linspace(0,5,500),traj)

    clf();comet(linspace(-2,4,500),(%s-3)/(%s^3+2*%s^2+1))

## Смотрите также

- color
- comet3d
- paramfplot2d

## История

5.3.2
Введена функция `comet`.