# comet3d

3D comet animated plot.

## Calling Sequence

    comet3d(z)

    comet3d(x,y,z)

    comet3d(x,y,fun)

    comet3d(x,y,z,p)

    comet3d(x,y,fun,p)

    comet3d(...,"colors",c)

## Parameters

x

  a real vector or matrix. If omitted, it is assumed to be the vector `1:nz` where `nz` is the number of curve points given by the `z` parameter.

y

  a real vector or matrix. If omitted, it is assumed to be the vector `1:nz` where `nz` is the number of curve points given by the `z` parameter.

z

  a real vector of length `nz` or a matrix with `nz` rows.

p

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

fun

  a scilab function with calling sequence `z=fun(x,y)`.

c

  a vector of `ny` color index.

## Description

If `(x,y,z)` are three vectors with the same number of elements, this function draws a 3D comet animated plot. The plot is made of three parts:

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

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

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

if `z` is a matrix and `(x,y)` are vectors then animated curves are drawn for each triple `(x,y,z(:,l))`. in this case `nz` is the number of rows of `z`.

if `x,y,z` are matrices with the same dimensions then animated curves are drawn for each triple `(x(:,l),y(:,l),z(:,l))`.

`comet3d(x,y,fun,...)` computes the `z` vector as `z(i)=fun(x(i),y(i))`

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

## Examples

    t = linspace(-%pi,%pi,500);
    clf();comet3d(sin(5*t),sin(t),t.^2)

    t = linspace(-%pi,%pi,500)';
    clf();comet3d(sin(5*t),sin(t),[t.^2,ones(t)])

    t = linspace(-%pi,%pi,500)';
    function z=traj(x,y),z=1.5*sin(x^2)*cos(y),endfunction
    clf();comet3d(cos(t),sin(t),traj)

## See Also

- comet

## History

5.3.2
Function comet3d introduced.