とりあえず使う(工事中)


以下では基本的な描画方法を紹介します.(まだ作り途中で不十分ですが) これらの物を組み合わせて目的に合わせた描画関数を作ることができます.

起動の様子はこんな感じです.(emacsで起動した方が便利: emacs -f yorick)
$ yorick
 Copyright (c) 2005.  The Regents of the University of California.
 All rights reserved.  Yorick 2.2.04 ready.  For help type 'help'
>

矢印やCtrlが文字化けする場合は(コマンド履歴も残るのでこっちの方が便利)
$ rlwrap -c yorick
 Copyright (c) 2005.  The Regents of the University of California.
 All rights reserved.  Yorick 2.2.04 ready.  For help type 'help'
>


基本コマンド

起動      :yorick (または rlwrap -c yorick)
終了      :quit
ヘルプ    :help, functionname
デバッグプロンプトからぬける:dbexit
グラフの更新              :fma
描画範囲の調節             :limits
ヘッダファイルのインクルード:include, "filename.i"

グラフの保存

hcps,"test.ps"(ps形式) 
eps,"test.epsi"(epsi形式)

yorick-zがインストールされている場合には
include,"png.i";
としておけば、以下のコマンドでpng形式(test.png)で保存できます.
png,"test";

デモの見方

デモはdemo1からdemo5まであります. 例えばdemo5を見るためには,

>include,"demo5.i"
>demo5
です.
demo2(二重振り子),demo3(膜の振動)がすごいです。 demo2はこのデモが作られた頃よりも今のパソコンかなり速いせいで表示がうまくいっていないようなので、少し編集しました。このファイル"demo2b.i"をyorickを起動したディレクトリの下において、

>include,"demo2b.i"
>demo2
です。
シミュレーションのスピードや長さを調整するためには

>demo2,T=500,inter_pause=0.005
です。Tは計算回数(⇒シミュレーションの長さ)。inter_pauseはスピードです(⇒小さいほど速い)
デフォルトではT=500,inter_pause=0.01です。

プロット例

  • 1次元の関数(2次元データ)のプロット (***で囲まれた範囲をyorikのプロンプトに張り付けてリターンキーを押してもで きます)
    /******************************/
    x=span(0,4,128); 
           //0〜4まで等間隔に128点とりxに格納
    y = sin(x^2); 
            //yをxの関数値として格納
    plg,y,x,color="blue";
            //青い線でプロット(plg,y だけでも描ける)
    limits;
            //表示範囲を整える
    /*******************************/
    
    描いたグラフはマウスで拡大・縮小や移動ができます
  • 2次元関数(3次元のデータ)のプロット
    /*******************************/
    
    x = span(-1,1,64)(,-:1:64); 
            //-1〜1までの2次元の64x64の配列を作る
    y = transpose(x); 
            //xを転置した物をyとする
    z= (x+y)*exp(-6*(x^2+y^2))*sin(x-y);
            //zの計算(自動的に64x64の行列が生成される)
    
    /***** この下からは1行ずつ試して下さい*****/
    fma;plfc,z,y,x
            //塗り分け等高線表示
    limits;
    plc,z,y,x;
            //等高線表示
    
    include, "plwf.i"; 
    include, "pl3d.i";
            //3D描画関数群のヘッダファイルをインクルード
    window3;
            //3D描画のウィンドウにする(しなくても可)
    plwf,z,y,x,cmax=2,shade=1,edges=0;
            //3D描画(plwf,shadingあり(shade=1),線無し(edges=0))
            //plwf,z でも描ける
    orient3;
           //視点の調整
    cage3;
            //3次元のcageを描く
    limits,nice=1;spin3;
            //とりあえずまわしてみる
    /*******************************/