yaplotのサンプルイメージ.
(3次元ボンドパーコレーションの視覚化。詳細画像は35kbytes)


yaplot mol3 xyzplot plot 3-D 3d three dimention wireframe wire frame

yaplot

(yet another plot in 3-D)
  • 使い方

          usage : yaplot [options] infile [infile ...]
            -e x,y,z        視点の座標を指定
            -l x,y,z        lookpointの座標を指定
            -u x,y,z        上方ベクトルの方向を指定
            -c filename     パレットファイルを指定
            -q n            キャッシュの大きさをnフレーム分に指定(default=1)
            -d              デバッグモード
            infile          コマンドファイル
    
    キャッシュを大きくとると、ファイルの読み込み速度が向上する分メモ リを消費します。

    DOS版では今のところすべてのオプションが認識されません。

    yaplotにはレイヤの概念があります。標準ではレイヤは1から12までの 12枚あり、それぞれの表示/非表示をファンクションキーで制御できます。同一のデー タを様々な面から解析する場合に役立ちます。

    コマンドファイル名に"-"を指定した場合には、標準入力からデータを 読みこみます。ただし、標準入力から読みこむ場合には、アニメーショ ン表示することはできません。

    コマンドファイルを複数指定すると、複数のウィンドウが表示されます。 それぞれの窓の制御方法は同期モードと非同期モードがあります。非同 期モードの窓に対してキー入力やマウス操作を行うと、その結果はその 窓のみに反映されます。一方、同期モードの窓の対して行った操作は、 非同期窓を含むすべての窓に反映されます。ただし、窓のサイズの変更 と、拡大縮小だけは常に非同期で行われます。

    同期モード、非同期モードの切り替えは"s"キーで行えます。デフォル トではすべての窓は同期モードになっています。また、非同期モードか ら同期モードの戻る場合には、その窓の視野描画情報はほかの同期モー ドの窓と同一に戻されます。

    MakefileでRECORDオプションを追加してあると、録画機能が使えます。"r"キーを押すと、現在表示されているフレーム以降を次々にgifファイルに保存していきます。録画を停止するには、再度"r"を押すか、"q"(yaplotの終了)を押して下さい。ファイル名は、yaplotxx_yyyyy.gif(xxの部分がウィンドウの番号、yyyyyがフレーム番号)となります。

    "u"(pUsh)を押すと、現在の視野情報をカレントディレクトリの ".yapviewstack"ファイルの末尾に追加します。また、"o"(pOp)を押すとカレ ントディレクトリの".yapviewstack"ファイルの末尾行を読み込み、現在の視 野情報とします。"u"とくみあわせることで、異なるyaplotや、異なるwindow の間で同じ視点を共有することができます。(DOS版では使えません)

    コマンドファイルを指定しなかった場合には、ヘルプファイル /usr/local/matto/etc/yaplot/help.yapが表示されます。

    パレットファイルを指定しなかった場合には、まずカレントディレクト リのyaplot.colをさがし、見付からなかった場合には、環境変数YAPLOTCOL の指すファイルを捜し、それでも見付からない場合にはホーム以下をさ がし、どうしても見付からない場合には /usr/local/matto/etc/yaplot/yaplot.colを読みこみます。なお、現在 のバージョンでは、コマンドファイル内で、"@"コマンドを使用してパレット の内容を変更することができますので、パレットファイルは必須ではありません。

    パッケージには、いくつかサンプルが添付されていますから、試してみ て下さい。

  • ユーザインターフェース

    マウスとキーで制御することができます。!が付いているコマンドにつ いては、各キーボードコマンドの前に数字を入力すると、そのキーを繰り返し 押したのと同じ効果があります。例えば"2" "0" "N"と入力すると、毎秒20フ レームの速度で自動アニメーションを行います。なお、"g"(指定フレームへジャ ンプ)と"f"(レイヤの表示非表示切替)以外はすべて相対指定です。つまり、 "10N5P"は"5N"と同じく、順方向へ毎秒5フレームでアニメーションします。 数字を打ちそこねた場合は、ESCを押して下さい。

    ウィンドウマネージャーによってはファンクションキーがのっとられて使えな い場合などもありますが、そのような場合はshiftを押しながらファンクショ ンを押すなどの方法でウィンドウマネージャーの機能を回避して下さい。

    !上下矢印キー、"j"、"k"
    ピッチ回転(縦回転)。何度も押すとだんだん回転が速くなります。
    !左右矢印キー、"h"、"l"
    ヘッド回転(横回転)
    マウスの左ボタンを押しながらドラッグ
    即時回転
    Pauseまたは"!"
    回転を停止
    Tab
    回転する前の状態にもどす。
    !"*"と"/"
    ズームインとアウト(望遠と広角)
    !"["と"]"
    視野角を広げる/狭める
    "r"
    録画開始/終了
    "u"
    pUsh; 現在の視野情報をカレントディレクトリの".yapviewstack"ファイルの末尾に追加します。
    "o"
    pOp; カレントディレクトリの".yapviewstack"ファイルの末尾行を読み込み、現在の視野情報とします。
    !PageDownまたは"n"
    次のフレーム
    !PageUpまたは"p"
    前のフレーム
    !Shiftを押しながらPageDownまたは"n"
    毎秒nフレームで順方向にアニメーション
    !Shiftを押しながらPageUpまたは"p"
    毎秒nフレームで逆方向にアニメーション
    !(数字のあとに)"g"またはEnter
    指定のフレームにジャンプ。"g"を単独で押すと最初のフレーム に、"G"を単独で押すと最後のフレームにジャンプします。
    SPACE
    すべての動作(回転とアニメーション)を停止
    "+" and "-"
    !表示品位の変更
    !InsertとDelete、または"("と")"
    線幅の変化の度合を変える。
    ファンクションキー、あるいは数字のあとに"F"
    各レイヤの表示/非表示をトグル
    "v"
    詳細情報の画面表示を制御
    "s"
    同期モード/非同期モードの切りかえ
    "q" or Break
    yaplotを終了
  • コマンドファイルフォーマット

    コマンドファイルの各行が一つのコマンドに対応します。行の最初に1 文字のコマンド、そのあとにパラメータを列挙して下さい。コマンドと パラメータの間、パラメータとパラメータの間は1つ以上の空白で区切っ て下さい。パラメータは省略できません。
    r {radius}
    円、棒、環の半径を指定する。
    l {x} {y} {z} {x} {y} {z}
    線を描く。
    s {x} {y} {z} {x} {y} {z}
    棒(太さのある線)を描く。
    p {n} {x} {y} {z} {x} {y} {z} {x} {y} {z} ...
    n角形を描 く。
    c {x} {y} {z}
    円を描く。
    o {x} {y} {z}
    環マークを描く。
    3 {x} {y} {z}
    三角形マークを描く。
    4 {x} {y} {z}
    四角形マークを描く。
    5 {x} {y} {z}
    五角形マークを描く。
    6 {x} {y} {z}
    六角形マークを描く。
    t {x} {y} {z} {text....}
    文字列を描く。
    @ {palette}
    パレット番号を指定する。
    @ {palette} {r} {g} {b}
    パレット番号の色を変更する。 r,g,bはそれぞれ0..255の範囲の整数で指定する。
    # {comment}
    コメント(無視されます)
    y {layer}
    レイヤを切り替えます(default layer=1)
    空行
    1フレームの終わりをあらわします。
  • パレットファイルフォーマット

    パレットファイルの各行には、各パレット番号の色彩を、赤、緑、青の 強度(0から255)で記述します。最初の行がパレット番号0に対応します。 0番から2番まのパレットは、yaplot自体も使用するので、それぞれ、黒、 灰色、白にしておいたほうがいいでしょう。
  • 内部動作について

    yaplotは、ファイル読み込み時に、ハッシュ表を用いてコマンドファイ ルで指定された座標が縮退しているかどうかを調べ、同一の座標の座標 変換計算を減らしています。このため、読みこみに少々余分な時間がか かりますが、ユーザは座標が縮退しているかどうかを心配する必要はあ りません。

    キャッシュ戦略にはLRUを使用していますが、先読みは行っていません。 このため、単に順方向/逆方向にアニメーション表示する場合にはあま りキャッシュは有効に働きません。すべてのフレームを読みこめるぐら い大きくキャッシュをとる場合、あるいは特定部分のみ繰り返し再生す るようなケースではキャッシュが有効に機能します。