# comet

2D comet animated plot.

## Calling Sequence

    comet(y)

    comet(x,y)

    comet(x,fun)

    comet(x,y,p)

    comet(x,fun,p)

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

## Parameters

x

  a real vector or matrix. If omitted, it is assumed to be the vector `1:ny` where `ny` is the number of curve points (see below).

y

  a real vector or matrix of length.

p

  a real scalar in the interval`[0 1[`. Default value is 0.1.

fun

  a scilab function with calling sequence `y=fun(x)`. `fun` can also be a polynomial or a rational fraction.

c

  a vector of `ny` color index.

## Description

If `(x,y)` are two vectors with the same number of elements, this function draws a 2D comet animated plot showing the progession of the curve `(x(1:k),y(1:k))` for `k` varying from `1` to `size(x,'*')`.

The plot is made of three parts:

a head

  mark that shows the current `(x(i),y(i))` position.

a body

  that shows the trailing curve that follows the head: the `(x(i-k:i),y(i-k:i))` part of the curve.

a tail

  that shows the `(x(1:i-k),y(1:i-k))` part of the curve.

`comet(x,fun,...)` is equivalent to `comet(x,feval(x,fun),...)`.

`comet(...,p)` can be used to set the relative length of the body. `k` is defined as `k = round(p*ny)`.

If `y` is a matrix then animated curves are drawn for each pair `(x,y(:,l))`. In this case `ny` is the number of rows of `y`.

If `x` and `y` are matrices with identical sizes then animated curves are drawn for each pair `(x(:,l),y(:,l))`. In this case `ny` is the number of rows of `x` and `y`.

`comet(...,"colors",c)` can be used to set the colors of each curves.

## Examples

    t = linspace(0,10*%pi,500);
    clf();
    set(gca(),"isoview","on"); //set isoview axes
    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))

## See Also

- color
- comet3d
- paramfplot2d

## History

5.3.2
Function `comet` introduced.