PV−WAVE初級トレーニング (キーボードからの対話形式使用) UNIX/Linux 版テキスト PV-WAVE 日本ビジュアルニューメリックス株式会社 2001年11月 V2.0 目 次 はじめに ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 4 1 PV-WAVEの基本操作 ・・・・・・・・・・・・・・・・・・・・・・・ 6 1.1 PV-WAVE の起動と終了 ・・・・・・・・・・・・・・・・・・・ 6 1.1.1 環境変数 ・・・・・・・・・・・・・・・・・・・・・・・ 6 1.1.2 PV-WAVE の起動、終了、中断 ・・・・・・・・・・・・・ 6 1.2 利用環境 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 7 i n f o コマンド 1.3 PV-WAVE プログラミング ・・・・・・・・・・・・・・・・・・ 8 1.3.1 プログラム制御コマンド ・・・・・・・・・・・・・・・・ 8 1.3.2 特殊文字の使い方 ・・・・・・・・・・・・・・・・・・・ 8 1.3.3 プログラムの作成と実行 ・・・・・・・・・・・・・・・・ 9 1.3.4 プログラム単位 ・・・・・・・・・・・・・・・・・・・・ 10 1.3.5 OSコマンドの実行 ・・・・・・・・・・・・・・・・・・ 10 1.3.6 バッチファイルの実行 ・・・・・・・・・・・・・・・・・ 10 1.3.7 ジャーナル機能 ・・・・・・・・・・・・・・・・・・・・ 11 1.3.8 スタートアップファイル ・・・・・・・・・・・・・・・・ 11 1.4 ファイル入出力 ・・・・・・・・・・・・・・・・・・・・・・・ 12 1.5 オンラインドキュメント ・・・・・・・・・・・・・・・・・・・ 13 [添付プログラム] ・・・・・・・・・・・・・・・・・・・・・・・・・ 14 2 二次元データの表示 ・・・・・・・・・・・・・・・・・・・・・・・・ 15 2.1 XY プロット ・・・・・・・・・・・・・・・・・・・・・・・・ 15 2.1.1 Plot コマンド ・・・・・・・・・・・・・・・・・・・・・ 1 15 2.1.2 Oplot コマンド ・・・・・・・・・・・・・・・・・・・・ 16 2.1.3 Axisコマンド ・・・・・・・・・・・・・・・・・・・・ 17 2.1.4 Xyoutsコマンド ・・・・・・・・・・・・・・・・・・・ 17 2.1.5 Plot_io/Plot_oi/Plot_oo コマンド ・・・・・・・・・・・・ 18 2.1.6 Polyfillコマンド ・・・・・・・・・・・・・・・・・・・ 19 2.1.7 画面分割(!P.multi) ・・・・・・・・・・・・・・・・・ 19 2.2 カーソルからの座標入力 ・・・・・・・・・・・・・・・・・・・ 21 2.3 日付/時刻データ ・・・・・・・・・・・・・・・・・・・・・・ 22 3 三次元データの表示 ・・・・・・・・・・・・・・・・・・・・・・・・ 24 3.1 コンター ・・・・・・・・・・・・・・・・・・・・・・・・・ 24 3.2 サーフェイス ・・・・・・・・・・・・・・・・・・・・・・・・ 26 3.3 三次元グラフィックス ・・・・・・・・・・・・・・・・・・・・ 29 [添付プログラム] ・・・・・・・・・・・・・・・・・・・・・・・・・ 32 4 画像表示 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 33 4.1 イメージデータ ・・・・・・・・・・・・・・・・・・・・・・・ 33 4.2 拡大・縮小・回転 ・・・・・・・・・・・・・・・・・・・・・・ 35 4.3 イメージ情報 ・・・・・・・・・・・・・・・・・・・・・・・・ 36 4.4 グレイレベル変換 ・・・・・・・・・・・・・・・・・・・・・・ 38 4.4.1 2値化 ・・・・・・・・・・・・・・・・・・・・・・・・ 38 4.4.2 コントラストの向上 ・・・・・・・・・・・・・・・・・・ 39 4.4.3 ヒストグラムの平均化 ・・・・・・・・・・・・・・・・・ 39 4.5 スムージング ・・・・・・・・・・・・・・・・・・・・・・・・ 39 4.6 シャープニング ・・・・・・・・・・・・・・・・・・・・・・・ 40 4.6.1 Roberts関数 ・・・・・・・・・・・・・・・・・・・・・ 40 2 4.6.2 Sobel 関数 ・・・・・・・・・・・・・・・・・・・・・・ 40 4.6.3 アンシャープマスク処理 ・・・・・・・・・・・・・・・・ 40 4.7 フィルタリング ・・・・・・・・・・・・・・・・・・・・・・・ 41 4.7.1 ローパスフィルター ・・・・・・・・・・・・・・・・・・ 41 4.7.2 ハイパスフィルター ・・・・・・・・・・・・・・・・・・ 42 5 レンダリング ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 44 5.1 基本手順 ・・・・・・・・・・・・・・・・・・・・・・・・・・ 44 5.2 使用例 ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 44 5.3 プログラム例 ・・・・・・・・・・・・・・・・・・・・・・・・ 46 [添付プログラム] ・・・・・・・・・・・・・・・・・・・・・・・・・ 50 6 カラーグラフィックス ・・・・・・・・・・・・・・・・・・・・・・・ 51 6.1 RGB カラーシステム ・・・・・・・・・・・・・・・・・・・・ 51 6.2 カラーテーブル ・・・・・・・・・・・・・・・・・・・・・・・ 52 6.2.1 デフォルトカラーテーブル ・・・・・・・・・・・・・・・ 52 6.2.2 カラーテーブルの変更 ・・・・・・・・・・・・・・・・・ 53 6.2.3 カラーテーブル関連ルーティン ・・・・・・・・・・・・・ 53 7 出力デバイス ・・・・・・・・・・・・・・・・・・・・・・・・・・・ 55 7.1 ポストスクリプト ・・・・・・・・・・・・・・・・・・・・・・ 55 3 はじめに このテキストは、PV−WAVEを初めて使う方もしくは使い始めて間もない方を対象に作成しています。 より詳しい内容を知りたい方は各項目毎にPV−WAVE各マニュアルを表示してありますのでご参照下さ い。但し、“付録”は本テキストの付録、“U”は日本語ユーザズガイド、“P”は日本語プログラマーズガ イド、“RⅠ”及び“RⅡ”は日本語リファレンスマニュアル1及び2を指します。 このテキストは1章から7章までの本文とAからFまでの付録の2冊構成です。本文中キーボードから入 力するコマンドは斜体で表示しています。斜体で表記されているPV−WAVEのコマンドを入力すると本文 中に挿入されている図が表示されます。尚、 PV−WAVEのコマンドは大文字・小文字の区別は有りません。 オプション値や入力データを色々と変更して表示結果を比較してみて下さい。各コマンドのオプションに つきましては付録Bのコマンド一覧、付録Cのキーワード一覧をご参照下さい。 PV−WAVEのコマンドは最大20個まで保存されています。上矢印キー ↑ または<CTRL>+N で再 度呼び出す事ができます。コマンドの再実行や編集にご利用下さい。 このテキストはUNIX/LINUX ユーザを対象に作成されていますが、OSコマンドの実行等の幾つかの コマンドを除けばVMSユーザやPCユーザでもお使い頂けます。詳細につきましてはそれぞれのマニュアル をご覧下さい。 4 [本文の表示例] 2.1.1 Plotコマンド Plotコマンドは、二次元グラフを描く代表的なコマンドです。次のコマンドを入力して下さい。 WAVE>x=Findgen(801)/5-80 このコマンドをキーボードから WAVE>y=x*Sin(x) 入力すると下図が出力される。 WAVE>Plot,y 図2−1 XYプロット 出力結果 5 1 PV−WAVEの基本操作 1.1 PV−WAVEの起動と終了 1.1.1 環境変数 PV−WAVEを正常に起動する為には、いくつかの環境変数を定義する必要があります。UNI Xの場合PV−WAVEを起動するウインドーから次のコマンドを実行するか、環境ファイルに書 き込む事により環境変数が設定されます。 [Cシェルの場合] source インストールディレクトリ/wave/bin/wvsetup [B,Kシェルの場合] . インストールディレクトリ/wave/bin/wvsetup.sh ここで、インストールディレクトリ はPV−WAVEがインストール されているディレクトリを指します。 このコマンドによって設定される環境変数の内代表的なものを示します。 $WAVE_DIR $LICENSE_DIR $WAVE_STARTUP $WAVE_LUNG 1.1.2 PV−WAVEの起動、終了、中断 PV−WAVE を起動するには、次のコマンドを打ち込みます。 wave 正常に立ち上がると、“WAVE>”プロンプトが表示されます。 PV−WAVEを終了するには、PV−WAVEのプロンプトから次のコマンドを打ち込 みます。 WAVE>Exit 6 又は WAVE>Quit PV−WAVEが終了し、OSのプロンプトに戻ります。PV−WAVEが終了しますと、 全ての変数はなくなり、開いていたファイルは全て自動的に閉じられます。 PV−WAVEを一時的に中断するには次の2つの方法があります。 方法1 : <CTRL>+Z OSのプロンプトに戻り、PV−WAVEはバックグラウンドジョブとなり ます。元のPV−WAVEプロンプトに戻すには、OSのプロンプトから次 のコマンドを打ち込んで下さい。 fg 方法2 : WAVE>$ OSのプロンプトに戻ります。元のPV−WAVEプロンプトに戻すには、 OSのプロンプトから次のコマンドを打ち込んで下さい。 exit また、$の後ろにUNIXのコマンドを続けると、UNIXコマンドを実行 してすぐPV−WAVEプロンプトに戻ります。 WAVE>$ls -la 1.2 利用環境 infoコマンド info コマンドは、PV−WAVEのセッション情報を表示します。パラメータ無しで使用すると、 現在の全般的な情報を得る事ができます。また、特定のセッションに関する情報を得たい時はキー ワードを指定します。キーワードにはデバイスの情報を得る為の DEVICE、メモリーの情報を得る為 の MEMORY 等があります。 WAVE>info 7 WAVE>info,/DEVICE WAVE>info,/MEMORY 1.3 PV−WAVEプログラミング PV−WAVEのコマンドやプログラムを実行する方法として次の3つがあります。 1)インターラクティブ(対話的)にコマンドを打ち込む方法 2)バッチ(コマンド)ファイルを実行する方法 3)プログラムを作成し、コンパイルし実行する方法 ここでは、プログラミングの基本及びバッチ処理の便利な使い方について説明します。 1.3.1 プログラム制御コマンド PV−WAVEプログラムのコンパイル・実行・再開等を行います。プログラム制御コマンドは、 PV−WAVEプロンプトからしか実行できません。 .run : プログラムをコンパイルする。 .rnew : メインプログラムの変数を消し、.runを実行する。 .con : 中断したプログラムを続行する。 .go : メインプログラムを実行する。 .step : プログラムを1行だけ実行する。 .skip : プログラムを1行だけ飛ばす。 .size : コードエリア及びデータエリアを変更する。 .locals : ローカル変数とコモンブロックの変数の数を再設定する。 1.3.2 特殊文字の使い方 PV−WAVEでは、特別な解釈をされる文字が幾つかあります。 ! : !で始まる文字列はシステム変数名です。 ‘ : 文字定数及び8進数、16進数の定義に使います。 8 ; : コメント行を表します。 $ : $が行の先頭につく場合はOSへのコマンドを表します。 $が行の末尾につく場合は行の継続を表します。 “ : 文字定数及び8進数の定義に使います。 . : 少数点及びプログラム制御コマンドの先頭に付きます。 & : 1行に複数のコマンドを書く場合に使います。 : : ラベル名の最後に付ける事により、ラベルを定義します。 * : 配列の添字範囲を表します。例、b=a(2:*) @ : バッチファイルの実行又は挿入(インクルード)ファイルを表 します。 1.3.3 プログラムの作成と実行 PV−WAVEでプログラムを作成する方法は2つあります。 1)PV−WAVEのプロンプトから.run コマンドを使ってインターラ クティブにプログラムを記述してゆく方法。 .runコマンドの後にファイル名を入れない と ‘−’ が表示されプログラムの入力待ちとなる。‘−’ の後にEND が入力され るとプログラムが完結したものとみなされ自動的にコンパイルされる。 WAVE>.run - Function square,number - Return,number^2 - End %Compiled modules: SQUARE WAVE>Print,square(3) 2)他ウインドーでエディターを開きプログラムを作成し、.runまたは .rnew コマンドでコンパイルし実行する方法。 WAVE>.run square.pro 又は WAVE>.rnew square.pro %Compiled modules: SQUARE WAVE>Print,square(3) 9 1.3.4 プログラム単位 PV−WAVEでは次の4種類のプログラムが使われます。 プロシージャ 関数 メインプログラム 挿入(インクルード)ファイル 1つのプログラムファイル(通常.PRO の拡張子を付けます)に異なるプログラム単位が混在しても かまいません。.run 又は .rnew によってプログラムファイル中の全ての単位がコンパイルされ ます。もし、プログラムファイル中にメインプログラムがある場合は、コンパイル終了後メインプ ログラムが実行されます。 1.3.5 OSコマンドの実行 PV−WAVEのプログラムからUNIXのコマンドを実行する場合は、 spawn プロシージャを使い ます。PV−WAVEプロンプトからUNIXコマンドを実行する場合は spawn プロシジャーの他 に $ も使えます。(注意:PV−WAVEのプログラムから$を使ってUNIXのコマンドを 実行する事はできません。) WAVE>Spawn,‘ls -la’ WAVE>$ls -la 1.3.6 バッチファイルの実行 PV−WAVEプロンプトから実行する処理をファイルに記述し、一括処理する事ができます。フ ァイル名の先頭に @ を付けることによりファイル内に記述してあるコマンドや実行文を順番に 実行して行きます。 WAVE>@fig8 (バッチファイル‘fig8.pro‘がない場合は、添付プログラム‘fig8.pro’ をエディターで作成した後に上記コマンドを実行して下さい。) 10 WAVE>$more fig8.pro 1.3.7 ジャーナル機能 journal プロシージャを使うと、インターラクティブに行った処理が wavesave.proというファイル に記録され、再度バッチ処理形式で実行することができます。journal プロシジャーによってつくら れたファイルをバッチファイルとして実行する事により、何度でも処理履歴の再現が可能です。 WAVE>Journal WAVE> Plot , Randomu(seed,20) WAVE>Journal WAVE>@wavesave.pro 1.3.8 スタートアップファイル 環境変数WAVE_STARTUPに定義されているファイルの内容がPV−WAVE起動時に実 行されます。スタートアップファイルの中には、PV−WAVE利用者に対するメッセージやよく 使うデータのロード命令やコマンドのコンパイル命令等を記述します。UNIXの環境変数はOS プロンプトから設定します。 [Cシェルの場合] setenv WAVE_STARTUP スタートアップファイル名 [B,Kシェルの場合] WAVE_STARTUP=スタートアップファイル名 export WAVE_STARTUP また、PV−WAVE起動時にバッチファイルを指定する事により、起動時に特定の処理 を行う事ができます。 wave スタートアップファイル名 11 1.4 ファイル入出力 外部ファイルからデータを読み込む又はデータを書き出すにはつぎの手順で行います。 1)ファイルに識別番号を付けオープンする。 2)データを読み込むまたは書き出す。 3)ファイルをクローズする。 PV−WAVEでは、アスキーデータ・バイナリーデータが取り扱えます。書式付きまたは書式なしのデー タの取り扱いもできます。また、入出力専用ルーチン(DCルーチン)もお使い頂けます。 [例:アスキーデータの書き出し] WAVE> data1=[[1,2,3],[4,5,6]] WAVE> Print,data1 WAVE> Openw,1,`file.dat' WAVE> Printf,1,data1 WAVE> Close,1 [例:アスキーデータの読み込み] WAVE> data2=Intarr(3,2) WAVE> Openr,1,`file.dat ' WAVE> Readf,1,data2 WAVE> Close,1 WAVE> Print,data2 12 1.5 オンラインヘルプ PV−WAVEのオンラインドキュメントを起動するには、PV−WAVEプロンプトから help コマン ドを打ち込みます。 WAVE > help 13 [添付プログラム] もし、本テキストP10の例題を実行する場合は、はじめに次のプログラム(’fig8.pro ‘)をエディタ ーでカレントディレクトリーに作成した後で、本章の例題を行って下さい。 ①‘fig8.pro’ の内容 ; ***** Fig2-4 ***** theta=Findgen(200)/100*!PI r=2*Sin(4*theta) Plot,r,theta,/Polar,Xstyle=4$ ,Ystyle=4,Title=`Polar Plot' Axis,0,0,Xaxis=0 Axis,0,0,Yaxis=0 Wait,1 ; ***** Fig2-5 ***** x=Randomu(seed,10) Plot,x,Psym=-2,Title=`Plot & Xyouts' For i=0,9 Do Xyouts,i,x(i),` P '+Strtrim(i,2) Wait,1 ; ***** Fig2-6 ***** x=[100,5000,20000,50000L,70000L] y=[100,10000,1100000L,100000L,200000L] Plot_oo,x,y,Ticklen=0.5,Gridstyle=1,Tickformat=`(I7)' Wait,1 ; ***** Fig2-7 ***** Plot,[0,1],[0,1],/Nodata nu=36 r=0.2 x=r*Cos(Findgen(nu)*360./nu*!Pi/180.) y=r*Sin(Findgen(nu)*360./nu*!Pi/180.) Polyfill,x+0.3,y+0.3,Color=100 Polyfill,x+0.7,y+0.3,Color=150 Polyfill,x+0.5,y+0.7,Color=200 14 2 二次元データの表示 PV−WAVEでは、いろいろな種類の二次元データ表示用のプロシージャを用意しています。ここではその うちの代表的なコマンドについて、基本的な使い方・キーワードを使った設定変更の方法等を説明します。 PV−WAVEでは次の3種類の座標系をサポートしております。 1)データ座標系 2)デバイス座標系 3)正規化座標系 2.1 XYプロット 2.1.1 Plotコマンド Plotコマンドは、二次元グラフを描く代表的なコマンドです。次のコマンドを入力して下さい。 WAVE>x=Findgen(801)/5-80 WAVE>y=x*Sin(x) WAVE>Plot,y 図2−1 XYプロット キーワードにより表示方法を変更する事ができます。表示範囲を変更するには Xrange/Yrange キー ワード、マーカーシンボルを出力するには Psym キーワードを指定します。次のコマンドを入力して 下さい。 15 WAVE>Plot,y,Xrange=[350,450],Yrange=[-10,10],Psym=6 図2−2 キーワード指定 PSYM オプションを指定するとマーカーシンボルを出力します。 PSYMの値は0∼10です。但し、 8はユーザ定義、9は未定義、10はヒストグラム表示となっています。また、マイナス値を指定 しますとマーカーシンボルを出力しかつ直線で結びます。 2.1.2 Oplot コマンド Oplot コマンドは、表示中のグラフに他のグラフを重ね描きするコマンドです。次のコマンド を入力して下さい。 WAVE>w=x*Cos(x) WAVE>Oplot,w,Psym=-2 図2−3 オーバープロッティン 16 2.1.3 Axisコマンド Axis コマンドは、指定位置に指定タイプの座標軸を描きます。次のコマンドを入力して下さい。 WAVE>theta=Findgen(200)/100*!Pi WAVE>r=2*Sin(4*theta) WAVE>Plot,r,theta,/Polar,Xstyle=4$ − ,Ystyle=4,Title=`Polar Plot' WAVE>Axis,0,0,Xaxis=0 WAVE>Axis,0,0,Yaxis=0 図2−4 座標軸の指定 2.1.4 Xyouts コマンド Xyouts コマンドは文字列を表示します。次のコマンドを入力して下さい。 WAVE>x=Randomu(seed,10) WAVE>Plot,x,Psym=-2,Title=`Plot & Xyouts' 17 WAVE>For i=0,9 Do Xyouts,i,x(i),` P '+Strtrim(i,2) 図2−5 注釈の追加 2.1.5 Plot_io/Plot_oi/Plot_oo コマンド これらのコマンドは片対数又は両対数グラフを表示します。次のコマンドを入力して下さい。 WAVE>x=[100,5000,20000,50000L,70000L] WAVE>y=[100,10000,1100000L,100000L,200000L] WAVE>Plot_oo,x,y,Ticklen=0.5,Gridstyle=1,Tickformat= ‘ ( I7 ) ’ 図2−6 対数グラフ 18 2.1.6 Polyfill コマンド Polyfill コマンドは多角形の塗りつぶしを行います。次のコマンドを入力して下さい。 WAVE>Plot,[0,1],[0,1],/Nodata WAVE>nu=36 WAVE>r=0.2 WAVE>x=r*Cos(Findgen(nu)*360./nu*!Pi/180.) WAVE>y=r*Sin(Findgen(nu)*360./nu*!Pi/180.) WAVE>Polyfill,x+0.3,y+0.3,Color=100 WAVE>Polyfill,x+0.7,y+0.3,Color=150 WAVE>Polyfill,x+0.5,y+0.7,Color=200 図2−7 多角形の塗りつぶし 2.1.7 画面分割(!P.multi) PV−WAVEでは、システム変数“!P.multi”を設定する事により、ウインドウを分割してグ ラフを表示する事ができます。次のコマンドを入力して下さい。 19 WAVE>!P.multi=[0,2,2] WAVE>@fig8 (バッチファイル‘fig8.pro‘がない場合は、第一章の添付プログラム‘fig8.pro’をエディター で作成した後に上記コマンドを実行して下さい。) WAVE>!P.multi=0 図2−8 ウインドーの分割 システム変数 !P.multi は画面の分割を定義します。分割されたウインドウは通常、左から右次に上から 下の順番で出力されます。 !P.multi の第一項目は分割された領域の空き領域数を示します。この値が0 以下の場合、ウインドウ全体がクリアされ左上の領域に出力されます。分割されたウインドウの任意の領域 に出力したい場合は、この項目を毎回定義してゆきます。!P.multi の第二項目は横方向の分割数を定義し ます。第三項目は縦方向の分割数を定義します。 20 2.2 カーソルからの座標入力 Cursor コマンドにより、カーソル(マウス)を使って表示済みのグラフまたはイメージデータから座標 を読みとる事ができます。次のコマンドを入力して下さい。 WAVE>Plot,[0,10] WAVE>Cursor,x,y,/Normal (マウスでウインドウ内の適当な位置をクリックして下さい) WAVE>Xyouts,x,y,`Point 1',/Normal WAVE>Print,x,y WAVE>Cursor,x,y,/Device (マウスでウインドウ内の適当な位置をクリックして下さい) WAVE>Xyouts,x,y,`Point 2',/Device WAVE>Print,x,y WAVE>Cursor,x,y,/Data (マウスでウインドウ内の適当な位置をクリックして下さい) WAVE>Xyouts,x,y,`Point 3',/Data WAVE>Print,x,y 図2−9 カーソルによる入力 21 2.3 日付/時刻データ PV−WAVEでは年・月・週・日・時・分・秒等の日付/時刻データをX軸にしてグラフを描く事 ができます。次のコマンドを入力して下さい。 WAVE>fday=Today() WAVE>num=10 WAVE>xt=Dtgen(fday,num,/Day) WAVE>Openr,1,Filepath(‘heat.dat’ , Subdir=‘data’) WAVE>yt=intarr(num) WAVE>Readf,1,yt WAVE>Close,1 WAVE>Plot,xt,yt,Psym=-4,/Box 図2−10 日別データ 22 WAVE>xt=Dtgen(fday,num,/Month) WAVE>Plot,xt,yt,Psym=-4,/Month_abbr 図2−11 月別データ PV-WAVE のデモンストレーションプログラムにもたくさんの使用例が紹介されています。是非一度ご覧下 さい。デモンストレーションプログラムを起動するには、PV-WAVE のプロンプトから次の様に入力します。 WAVE> Demo しばらくすると、デモンストレーションプログラムの初期画面が現れます。初期画面は次の3つの部分で 構成されています。 ・Functional Demonstration (基本的な関数のデモ) ・industory Applications (分野毎の使用例) ・PV-WAVE Product Family (オプション製品の紹介) “Functional Demonstration”の最初のボタン”Basic Functions”をマウスでクリックすると、5つのボ タンを持ったメニューが現れます。その最初のボタン”X-Y Plots”をマウスでクリックすると2次元グラフ の使用例が表示されます。 23 3 三次元データの表示 PV−WAVEでは、いろいろな種類の三次元データ表示用のコマンドを用意しています。ここではそのうち の代表的なコマンドについて説明します。 3.1 コンター Contour コマンドは、二次元配列データのコンター図を作成します。次のコマンドを入力して下さい。 WAVE>z=Fltarr(101,101) WAVE>status=Dc_Read_Free(‘data31’ , z) (データファイル ‘data31’が無い場合は、添付プログラム ‘ mk_d31.pro ‘を実 行してデータファイルを作成して下さい。) WAVE>Contour,z,Title= ‘ Contour Plot ’ 図3−1 コンター図 ここで、PV−WAVEの部分配列機能を使ってコンターの拡大表示を行います。また、配列の演算機能 を使ってデータ配列の和及び差を求めてコンター表示を行います。 WAVE>Window , 3 WAVE>!P.multi=[0 , 2 , 2] WAVE>Contour , z(0:50 , *) , Title= ‘Contour Harh Plot’ WAVE>Contour , z(0:50 , 0:50), Title=‘Contour Quarter Plot’ , Nlevels=12 24 WAVE>Contour , z(0:50 , *) + z(50:100 , *) , Title=‘Adding data’ WAVE>Contour , z(* , 0:50 ) - z(* , 50:100) , Title=‘Reducing data’ WAVE>!P.multi=0 図3−2 配列操作とコンター図 以下に Contour コマンドに特有なオプションを示します。詳細につきましては、U4−1をご覧下さい。 C_anotation : コンターに付けるラベルの指定 C_charsize : コンターラベルの文字サイズ C_colors : コンターの色を指定 C_labels : ラベルを付けるコンター線を指定 C_linestyle : コンターの線種を指定 C_thick : コンターの線幅を指定 Follow : 線追跡手法を用いる Levels : コンターのレベルを指定 Max_value : 最大値の指定 Nlevels : コンター数を指定 25 Path_filename : コンターの座標値を格納するファイル名を指定 Spline : 3次スプライン補間を行う image_cont コマンドは、コンター図にカラーのシェーディングイメージを重ねて表示します。 WAVE>image_Cont , z 図3−3 イメージコンター 3.2 サーフェイス <<参照頁:U4−13、RⅠー88、44、53>> Surfaceコマンドは、二次元配列データの鳥瞰図を作成します。次のコマンドを入力して下さい。 WAVE>Surface , z , Title= ‘ Surface ‘ 図3−4 鳥瞰図 26 以下に SURFACE コマンド特有なオプションを示します。 Ax : X軸の回転角を指定 Az : Z軸の回転角を指定 Bottom : 鳥瞰図の裏側のカラー番号を指定 Horizontal : メシュではなく平行線で表示 Lower_only : 鳥瞰図の裏側だけ表示 Save : 3次元変換マトリックスを保管 Skirt : スカートを付加 Upper_only : 鳥瞰図の表面だけを表示 Zaxis : Z軸の出力位置を指定 Shade_surf コマンドは、シェーディングイメージの鳥瞰図を表示します。次のコマンドを入力して下 さい。 WAVE>Shade_surf , z , Title= ‘ Shade Surface ‘ 図3−5 シェードサーフェイス WgSurfaceTool は、Surfaceと Shade_surf を組み合わせたツールです。コマンドの切り替えやオプション の設定がボタンやスライダー等のGUI(Graphics User interface)を使って出来ます。 27 Show3 コマンドは、データのイメージ表示・鳥瞰図・コンター図を組み合わせ表示を行います。次のコマ ンドを入力して下さい。 WAVE>Show3 , z 図3−6 SHOW3コマンド ユーザが、任意の表示方法を組み合わせて出力する事も可能です。次のコマンドを入力して下さい。 WAVE>Surface , z, /Save WAVE>Contour , z , /T3d , /Noerase , Zvalue=1 図3−7 鳥瞰図とコンター図 28 WAVE>Shade_surf , z WAVE>Surface , z ,/Noerase , /Horizontal 図3−8 シェードサーフェスと鳥瞰図 3.3 三次元グラフィックス Plots、Polyfill コマンドは、三次元の図形を描く事ができますがX,Y,Z軸のスケーリングや座標 軸の出力は行いません。ここでは、座標軸のスケーリングや視点方向の移動方法についても述べます。 一方、前節で示したSurface や Shade_surf等のコマンドは座標軸のスケーリングや出力を自動的に行い ます。これを利用する方法についても説明します。次のコマンドを入力して下さい。 WAVE>Erase WAVE>z=Fltarr(1000) WAVE>x=z & y=z WAVE>status=Dc_Read_Free(‘data39’ , x , y , z , /Row) (データファイル ‘data39’が無い場合は、添付プログラム ‘ mk_d39.pro ‘を実 行してデータファイルを作成して下さい。) WAVE>Print,Max(x),Min(x) WAVE>Print,Max(y),Min(y) 29 WAVE>Print,Max(z),Min(z) WAVE>!X . s=[ -( -2) , 1. ] / (2 -( -2)) WAVE>!Y . s=!X . s WAVE>!Z.s=[0 , 1. ] / (1 - 0) WAVE>T3d , /Reset , Rotate=[0,0,30] WAVE>T3d , Rotate=[-60,0,0] WAVE>Scale3d WAVE>Plots , x , y , z , /T3d WAVE>!X.window=[0.1 , 0.9] WAVE>!Y.window=!X.window WAVE>!Z.window=[0 , 1] WAVE>Axis , /T3d , Xaxis=0 WAVE>Axis , /T3d , Yaxis=0 WAVE>Axis , /T3d , Zaxis=1 図3−9 三次元プロット 30 WAVE>Erase WAVE>Surface , intarr(2,2) , /Nodata , $ − Xr=[-1,1] , Yr=[-1,1] , Zr=[0,1] , /Save WAVE>Plots , x , y , z , /T3d 図3−10 自動スケーリング PV-WAVE のデモンストレーションプログラムにもたくさんの使用例が紹介されています。是非一度ご覧下 さい。デモンストレーションプログラムを起動するには、PV-WAVE のプロンプトから次の様に入力します。 WAVE> Demo しばらくすると、デモンストレーションプログラムの初期画面が現れます。初期画面は次の3つの部分で 構成されています。 ・Functional Demonstration (基本的な関数のデモ) ・industory Applications (分野毎の使用例) ・PV-WAVE Product Family (オプション製品の紹介) “Functional Demonstration”の最初のボタン”Basic Functions”をマウスでクリックすると、5つのボ タンを持ったメニューが現れます。その3、4、5番目のボタン”3-D Contour Display” , “3-D Surface Display” , “4-D Shaded Surface”をマウスでクリックするとそれぞれ Contour , Surface , Shade_surf の使用例が表示されます。 31 [添付プログラム] 本章の図3−1∼8及び図3−9∼10はそれぞれデータファイル‘ data31 ‘及び ‘data39 ‘からデータを読み 込み、作図する様になっています。はじめに次の2つのプログラム(’mk_d31.pro ‘及び ‘ mk_d39.pro ‘) を実行した後で、本章の例題を行って下さい。 プログラムの実行方法は次の通りです。 1)エディターで、 ‘mk_d31.pro ‘ 及び ‘mk_d39.pro ‘を作成する。 2)PV−WAVEのプロンプトからプログラムを実行する。(バッチ処理) WAVE> @mk_d31.pro WAVE> @mk_d39.pro ① ‘ mk_d31.pro ‘ の内容 n=101 x=Findgen(n)/5-10 y=x z=Fltarr(n,n) For i=0,n-1 Do $ z(i,*)=x(i)*Sin(y) + $ y*Cos(x(i)) - Sin(0.25*x(i)*y) Status=Dc_Write_Free(‘data31’,z) ② ‘ mk_d39.pro ‘ の内容 z=Findgen(1000)/999 x=z*Cos(50*z) y=z*Sin(50*z) Print,Max(x),Min(x) Print,Max(y),Min(y) Print,Max(z),Min(z) status=Dc_Write_Free('data39',x,y,z,/Row) 32 4 画像表示 PV−WAVEでは、多くの画像データ処理及び表示コマンドを用意しています。ここでは、その内の代表的な コマンドの説明を行います。 4.1 イメージデータ Tv コマンドは、イメージデータの表示を行います。また、Tvscl はイメージデータを表示可能なレベルに スケーリングし表示します。次のコマンドを入力して下さい。 WAVE>Erase WAVE>Openr,1,Filepath(‘abnorm.dat’,Subdir=‘data’) WAVE>data=Bytarr(64,64,16) WAVE>Readu,1,data WAVE>Close,1 読み込んだデータを並べて出力します。 WAVE>For i=0,15 Do Tv,data(*,*,i),i 図4−1 イメージデータ表示 WgMovieTool を使えば、アニメーション処理が簡単に出来ます。 WAVE> WgMovieTool , Rebin(data , 256 , 256 ,16) 33 オリジナルデータの内1枚のデータのみ拡大表示を行います。 WAVE>Erase WAVE>a=Rebin(data(*,*,0),256,256) WAVE>Tvscl,a 図4−2 データの自動スケーリング 出力位置の指定を行います。 WAVE>Erase WAVE>Tvscl,a,100,100 図4−3 出力位置の指定 34 Xyouts コマンドを使えば、イメージに文字列を上書きできます。 WAVE>Xyouts , 110 , 80 , ‘ Image Display ‘ , / Device,Charsize=3 図4−4 文字列の張り付け Tvrdコマンドを使えば、現在表示しているイメージデータを取り込む事ができます。 WAVE>c=Tvrd(100 , 50 , 256 , 306) 4.2 拡大・縮小・回転 Rebin 及び Congrid 関数はイメージデータの拡大・縮小を行います。Rot 及び Rotateコマンドはイメージデータの回転を 行います。次のコマンドを入力して下さい。 WAVE>Erase WAVE>Tvscl,Rebin(c , 128 , 153 ) , 0 WAVE>Tvscl , Congrid(c , 150 , 200) , 1 WAVE>Tvscl , Rotate(c , 2) 35 WAVE>Tvscl,Rot(c , 30 , Missing=0) , 300 , 0 図4−5 イメージデータの縮小・拡大・回転 4.3 イメージ情報 Histogram関数とPlot コマンドを組み合わせるとは、イメージデータの頻度分布をグラフ表示できます。 また、Profiles コマンドは表示中のイメージデータの縦及び横方向のプロファイルをグラフ表示します。 次のコマンドを入力して下さい。 WAVE>Plot , Histogram(c , Min=1) 図4−6 頻度分布 36 WAVE>Erase WAVE>Tv , c 図4−7 表示データ WAVE>Profiles , c カーソルをイメージデータの表示画面に移動させると、表示データの縦又は横のプロファ イルがグラフで表示されます。縦/横の切り替えはマウスの左ボタンで行って下さい。また、 マウスの右ボタンで終了します。 図4−8 プロファイル 37 4.4 グレイレベル変換 PV−WAVEで、画像表示を変更する方法として2つの方法が有ります。 1)イメージデータの画素値を変更して再表示する。 2)カラーテーブルを変更する。 ここでは、1)の方法について述べます。次のコマンドを入力して下さい。 WAVE>fname=Filepath(‘whirlpool.img’ , Subdir= ‘ demo/gallery3/data ’ ) WAVE>data=Bytarr(512,512) WAVE>status=Dc_Read_8_Bit(fname , data) WAVE>a=Rebin(data , 256 , 256) 4.4.1 2値化 オリジナルデータのプロファイルを表示します。 WAVE>Plot , Histogram(a,Min=1) , Title= ‘ Original Profile ‘ 図4−9 オリジナルデータのプロファイル オリジナルイメージと、2値化処理後のイメージを表示します。 WAVE>Window,3 WAVE>Tvscl , a , 0 WAVE>Tvscl , a Gt 75 , 1 38 4.4.2 コントラストの向上 画素値の最小値/最大値を指定することにより、その範囲内にあるデータをカラーテーブルに再 配分し表示します。 WAVE>Tvscl , a > 75 , 2 4.4.3 ヒストグラムの平均化 Hist_equal 関数は、イメージデータのヒストグラムの平均化処理を行います。 WAVE>Tvscl , Hist_equal(a) , 3 図4−10 グレイレベル変換 4.5 スムージング Smooth 関数は、イメージデータの平均化処理を行います。 WAVE>Erase WAVE>Tvscl , a , 0 WAVE>Tvscl , Smooth(a , 9) , 1 39 図4−11 スムージング 4.6 シャープニング PV−WAVEでは、Roberts や Sobel 等のエッジ強調の関数を持っています。同様の処理は Smooth や Shift などの関数を使ってできます。次のコマンドを入力して下さい。 4.6.1 Roberts関数 イメージデータに対してロバーツのエッジ検出を行います。 WAVE>Erase WAVE>c = a Gt 75 WAVE>Tvscl , c , 0 WAVE>Tvscl , Roberts(c) , 1 4.6.2 Sobel 関数 イメージデータに対してソベルのエッジ検出を行います。 WAVE>Tvscl , Sobel(c) , 2 4.6.3 アンシャープマスク処理 Smooth 関数を使って、アンシャープマスク処理を行います。 40 WAVE>Tvscl , c - Smooth(c , 3) , 3 図4−12 シャープニング 4.7 フィルタリング PV−WAVEでは、 FftやDist関数を使ってイメージデータのフィルタリング処理が容易にできます。 次のコマンドを入力して下さい。 WAVE>fname=Filepath(‘nyc.dat’, Subdir= ‘data’) WAVE>data=Bytarr(1024,1024) WAVE>status=Dc_Read_8_Bit(fname , data) WAVE>a=Rebin(data , 256, 256) WAVE>a=Hist_Equal(a) 4.7.1 ローパスフィルター WAVE>Erase WAVE>Tvscl , a , 0 WAVE>d = Dist(256) 41 WAVE>f = Fft(a, -1) WAVE>d0 = 5 WAVE>Tvscl , Shift(Alog(Abs(f)) , 128,128) , 1 WAVE>filter = d Lt d0 WAVE>c = F ft(f * filter , 1) WAVE>Tvscl , c ,2 4.7.2 ハイパスフィルター WAVE>filter = d Gt d0 WAVE>c = Fft(f * filter , 1) WAVE>Tvscl , c ,3 図4−13 周波数領域処理 42 WgSimageTool は大きなイメージデータの全体表示とオリジナル表示を同時に行います。 WAVE>Wdelete WAVE>Wdelete WAVE>WgSimageTool , data PV-WAVE のデモンストレーションプログラムにもたくさんの使用例が紹介されています。是非一度ご覧下 さい。デモンストレーションプログラムを起動するには、PV-WAVE のプロンプトから次の様に入力します。 WAVE> Demo しばらくすると、デモンストレーションプログラムの初期画面が現れます。初期画面は次の3つの部分で 構成されています。 ・Functional Demonstration (基本的な関数のデモ) ・industory Applications (分野毎の使用例) ・PV-WAVE Product Family (オプション製品の紹介) “Functional Demonstration”の最初のボタン”Basic Functions”をマウスでクリックすると、5つ のボタンを持ったメニューが現れます。 その 2 番目のボタン”2-D image Displays”をマウスでクリッ クするとイメージデータの表示例が出力します。 43 5 レンダリング PV−WAVEは、三次元データをレンダリング表示する関数を持っています。ここでは基本的な使い方、 使用例と簡単なプログラムを示します。詳細につきましては参照頁をご覧下さい。 5.1 基本手順 PV−WAVEで、レンダリング表示を行う為には基本的に次の5つのステップが必要です。 ① データーの作成もしくは読み込み。 ② データの変換。内容はデータ形式によって異なる。 ③ 視点位置、表示位置等の指定。 ④ イメージのレンダリング。 使う関数は、 Poly_plot 、 Polyshade Vol_marker . Vol_rend , Vector_field3 、 Render ⑤ Tv 若しくはTvscl を用いて結果を表示する。 5.2 使用例 レンダリング関数を使った簡単な例を示します。次のコマンドを実行して下さい。 WAVE> Erase WAVE> vol = Fltarr(20 , 20 , 20 ) WAVE> status=Dc_Read_Fixed( ‘ data51 ‘ , vol ,/Row , Format= ‘(3F12.5)’) (データファイル ‘data51’が無い場合は、添付プログラム ‘ mk_d51.pro ‘を実 行してデータファイルを作成して下さい。) WAVE> Shade_volume , vol , 7 , v, p WAVE> Surface , Fltarr(2,2) , /Nodata , /Save , $ − Xrange=[0 , 20] , Yrange=[0 , 20] , Zrange=[0 , 20] , $ − Xstyle=4 , Ystyle=4 , Zstyle=4 WAVE> image = Polyshade(v , p , /T3d) WAVE> Tv , image 44 図5−1 ボリュームレンダリング 次に、Render関数を用いた例を示します。 WAVE>Verts = Fltarr(3,8) WAVE>polys = intarr(30) WAVE>status=Dc_Read_Fixed( ‘ data52 ’ , verts , polys , /Row , $ − Format= ‘ (3F12.4 , I5 ) ‘ ) (データファイル ‘data52’が無い場合は、添付プログラム ‘ mk_d52.pro ‘を実 行してデータファイルを作成して下さい。) WAVE>m = Mesh(Verts , polys) WAVE>T3d , /Reset , Rotate = [15.0 , 30.0 , 45.0 ] WAVE>i = Render(m , x= 512 , y =512 , Transform = !P.t) WAVE> Tv ,i 45 図5−2 ポリゴンレンダリング 5.3 プログラム例 レンダリング関数を用いたデモプログラムを実行します。次のコマンドを実行して下さい。 WAVE> Cd , ‘ $WAVE_DIR / demo / render ‘ WAVE> Show_anim 図5−3 demo1 46 WAVE> Window WAVE> Show_iso_head WAVE> Loadct,3 図5−4 demo2 WAVE> Show_slic_head 図5−5 demo3 WAVE> Show_flat_head 47 図5−6 demo4 WAVE> Show_tran_head 図5−7 demo5 WAVE> Show_core_head 図5−8 demo6 48 PV−WAVEを終了して下さい。 WAVE> Exit PV-WAVE のデモンストレーションプログラムにもたくさんの使用例が紹介されています。是非一度ご覧下 さい。デモンストレーションプログラムを起動するには、PV-WAVE のプロンプトから次の様に入力します。 WAVE> Demo しばらくすると、デモンストレーションプログラムの初期画面が現れます。初期画面は次の3つの部分で 構成されています。 ・Functional Demonstration (基本的な関数のデモ) ・industory Applications (分野毎の使用例) ・PV-WAVE Product Family (オプション製品の紹介) “Functional Demonstration”のボタン”Advanced Rendaring”をマウスでクリックすると、レンダリング の使用例が表示されます。 49 [添付プログラム] 本章の図5−1 及び 図5−2はそれぞれデータファイル‘ data51 ‘及び ‘data52 ‘からデータを読み込み、 作図する様になっています。はじめに次の2つのプログラム(’mk_d51.pro ‘及び ‘ mk_d52.pro ‘)を実 行した後で、本章の例題を行って下さい。 プログラムの実行方法は次の通りです。 1)エディターで、 ‘mk_d51.pro ‘ 及び ‘mk_d52.pro ‘を作成する。 2)PV−WAVEのプロンプトからプログラムを実行する。(バッチ処理) WAVE> @mk_d51.pro WAVE> @mk_d52.pro ① ‘ mk_d51.pro ‘ の内容 vol=Fltarr(20,20,20) For x=0,19 Do For y=0,19 Do For z=0,19 Do $ Vol(x,y,z) = sqrt((x-10)^2 + (y-10)^2 + $ (z-10)^2) + 1.5 * Cos(z) status=DC_Write_Fixed('data51',vol,/row,Format='(3F12.5)') ② ‘mk_d52.pro ‘ の内容 verts=[[-1.0,-1.0, 1.0],[-1.0, 1.0, 1.0],[ 1.0, 1.0, 1.0],$ [ 1.0,-1.0, 1.0],[-1.0,-1.0,-1.0],[-1.0, 1.0,-1.0],$ [ 1.0, 1.0,-1.0],[ 1.0,-1.0,-1.0]] polys=[4,0,1,2,3, 4,4,5,1,0, 4,2,1,5,6, $ 4,2,6,7,3, 4,0,3,7,4, 4,7,6,5,4] status=Dc_Write_Fixed('data52',verts,polys,/Row, $ Format='(3F12.4,I5)') 50 6 カラーグラフィックス PV−WAVEでは、次の3つのカラーシステムを使う事ができます。 1)RGBカラーシステム Red(赤)、Green(緑)、Bulue(青) 2)HLSカラーシステム Hue(色合い)、Ligthness(明度)、Saturation(色彩) 3)HSVカラーシステム Hue(色合い)、Saturation(色彩)、Value(色の強度) 一般的にはRGBのカラーシステムが使われていますので、ここではRGBカラーシステムについて説明いた します。 6.1 RGBカラーシステム RGBカラーシステムは、光の3原色Red(赤)・Green(緑)・Bulue(青)の組み合わせで全ての色を表現し ます。図6−1に概念図を示します。R・G・Bそれぞれの色は0から255の256(8bit)のレベル をとる事ができます。従って、表現できるカラーの総数は16、777、216(24bit)となります。 図6−1 RGBカラーキューブ PV−WAVEでは24bit(フルカラー)の表示が可能ですが、画面にフルカラーで出力できるかどう かは表示するディスプレー(デバイス)によって異なります。一般的にワークステーションでは8bit(2 56色)ディスプレーが多く使われています。この場合、画面に同時出力できる色数は256(16、77 7、216色中256色)に限定されます。 51 6.2 カラーテーブル PV−WAVEは、デフォルトで16個のカラーテーブルを持っています。ユーザは自由にカラーテーブ ルを選択することができます。また、個々のカラーテーブルを自由に変更できます。更に、ユーザーが作成 したカラーテーブルを登録する事もできます。 ここでは、カラーテーブルの使い方・変更の仕方・登録方法について説明します。 6.2.1 デフォルトカラーテーブル PV−WAVEは、次に示す16個の8bit カラーテーブルを持っています。 PV−WAVE起動時には0番のカラーテーブルがロードされています。 [カラーテーブル番号] [カラーテーブルの名称] 0 Black and White Liner 1 Blue/White 2 Green/Red/Blue/White 3 Red Temperature 4 Blue/Green/Red/Yellow 5 Standard Gamma-Ⅰ 6 Prism 7 Red/Purple 8 Green/White Liner 9 Green/White Exponential 10 Green Pink 11 Blue Red 12 16 Revel 13 16 Revel Ⅱ 14 Steps 15 PV-WAVE Special Loadct コマンドは、上記のカラーテーブルをロードします。PV−WAVEを起動して、次のコ マンドを入力して下さい。 WAVE> Openr , 1 , Filepath( ‘ mandril.img ‘ , Subdir = ‘ data’) WAVE> data = Bytarr(512,512) WAVE> Readu , 1 , data 52 WAVE> Close , 1 WAVE> Tv , data WAVE> Loadct (0∼15 の内、好きな番号を入力して下さい) 図6−2 カラーテーブルの変更 6.2.2 カラーテーブルの変更 WgCtTool は、実際の色合いを確認しながらカラーテーブルを変更する事ができます。また、WgCeditTool は 個々のカラー番号の編集及びカラーテーブルの登録がで きます。次のコマンドを入力し、設定を変更して実際の表 示画面の変化を確認して下さい。 WAVE> WgCtTool WAVE> WgCeditTool WgCeditTool で作成したカラーテーブルは、WgCeditTool 以外からはロードできません。ご注意く ださい。 6.2.3 カラーシステム関連ルーチン PV−WAVEでは、この他にも幾つかのカラーハンドリングのルーチンを持っています。以下 にカラーハンドリングに関連するル−チン名を示します。 53 Adjct C_edit Color_edit Color_palette Hls Hsv Loadct Modifyct Palette Pseudo Strech WgBarTool WgCeditTool WgCtTool 54 7 出力デバイス PV−WAVEでは、次の14種類の出力デバイスと1個のウインドーシステムをサポートしています。 PV−WAVEを起動した時のデバイスのデフォルト値は、Xウインドウを表す‘X’となります。現在の デバイス情報を知りたい時は info コマンド、デバイスを切り替える時は Set_plotコマンドを使って下さい。 WAVE> info , / Device WAVE> Set_plot , ‘ PS ‘ WAVE> info , /Device WAVE> Set_Plot , ‘X’ (Unix の場合) WAVE> Set_Plot , ‘win32’ (Windows の場合) 7.1 ポストスクリプト 通常画面に出力されるグラフやイメージを、 ポストスクリプトプリンターに出力するには次の手順を取り ます。 1)出力デバイスをポストスクリプトに設定する。 WAVE> Set_plot , ‘ PS ‘ 2)各種の設定を行う。 WAVE> Device,Filename=‘ lesson1.ps ‘ 3)プリンターに出力したい内容のPV−WAVEコマンドを実行する。 WAVE> Plot,[1,2,3],Title=‘ Lesson For PostScript ‘ 4)出力デバイスをクローズする。 WAVE> Device , / Close 5)作成されたファイルをポストスクリプトプリンターに送る(UNIX/Linuxの場合) WAVE> Spawn, ’ lpr lesson1.ps ‘ 6)出力デバイスを画面に戻す。 WAVE> Set_plot , ‘ X ‘ (Unix の場合) WAVE> Set_plot , ‘ Win32 ‘(Windows の場合) 次のコマンドを入力して下さい。 WAVE>Set_Plot , ‘ PS ‘ WAVE>Device , Filename = ‘lesson2’ 55 WAVE>x = Findgen(200) WAVE>Plot , 10000*Sin(x/5)/Exp(x/100) , linestyle=2 ,$ − Title= ‘ PV-WAVE Post Script ‘ , Xtitle=‘Point Number’ , $ − Ytitle=‘Y axis Title’ WAVE>Oplot , 10000*Cos(x/5)/Exp(x/100),Linestyle=4 WAVE>Xyouts , 100 , -6000 , ‘ Sine ’ WAVE>Oplot , [120 , 180] , [-6000 , -6000] , Linestyle=2 WAVE>Xyouts , 100 , -8000 , ‘ Cosine ’ WAVE>Oplot , [120 , 180] , [-8000 , -8000] , Linestyle=4 WAVE>Device , /Close WAVE>Set_plot , ‘ X ‘ (実際にポストスクリプトプリンターから出力する時は、次のコマンドを入力して下さい) WAVE>Spawn , ‘ lpr lesson2 ‘ (Unix の場合) 図7−1 ポストスクリプト出力 56
© Copyright 2024 Paperzz