# comet3d

3次元 comet アニメーションプロット.

## 呼び出し手順

    comet3d(z)

    comet3d(x,y,z)

    comet3d(x,y,fun)

    comet3d(x,y,z,p)

    comet3d(x,y,fun,p)

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

## パラメータ

x

  実数ベクトルまたは行列. 省略された場合, ベクトル `1:nz` が使用されます. ただし, `nz` は`z`パラメータ で指定される曲線の点の数です.

y

  実数ベクトルまたは行列. 省略された場合, ベクトル `1:nz` が使用されます. ただし, `nz` は`z`パラメータ で指定される曲線の点の数です.

z

  長さ `nz` の実数ベクトル, または, `nz` 行の行列.

p

  範囲 `[0 1[` の実数スカラー. デフォルト値は 0.1.

fun

  呼び出し手順 `z=fun(x,y)` のScilab関数.

c

  `ny` 色の添字のベクトル.

## 説明

`(x,y,z)`が要素数が同じ3つのベクトルの場合, この関数は3次元cometアニメーションプロットを描画します. このプロットは以下の3つの部分から構成されます:

ヘッド
カレントの位置`(x(i),y(i),z(i))`を示すマーカ.

ボディー
ヘッドに続く尾の曲線を示す: 曲線の一部 `(x(i-k:i),y(i-k:i),z(i-k:i))`)

テール
曲線の一部`(x(1:i-k),y(1:i-k),z(1:i-k))` を示す.

`z` が行列, `(x,y)` がベクトルの場合, アニメーション表示される曲線は各`(x,y,z(:,l))` の組について描画されます. この場合, `nz` は `z`の行の数となります.

`x,y,z` が同じ次元の行列の場合, アニメーション表示される曲線は, 各組`(x(:,l),y(:,l),z(:,l))`について 描画されます.

`comet3d(x,y,fun,...)` は, `z` ベクトルを `z(i)=fun(x(i),y(i))`により 計算します.

`comet3d(...,p)` は, ボディの相対長を設定するために使用することができます. `k` は, `k = round(p*nz)`により定義されます.

## 例

    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)

## 参照

- comet

## 履歴

5.3.2
関数 comet3d が導入されました.