Version 0.99.9b
Copyright (C) 1998 - 2003 Tamaribuchi, Tsuguhiro
tamari@spdg1.sci.shizuoka.ac.jp http://spdg1.sci.shizuoka.ac.jp/grwinlib/「GrWin グラフィクス・ライブラリ」は Windows Xp/2000/NT/Me/9x 上で利用できる Fortran と C/C++ のためのフリーなグラフィクス・ライブラリです。 MinGW や Cygwin などのプログラミング環境とともにこのライブラリを用いることで, Windows プログラミングについての知識や経験が全くない人でも Windows (x86) プラットフォーム上でのフリーなグラフィクス・プログラミングを手軽に楽しむことができます。 また, 最近フリーなコマンドライン・コンパイラーとして公開された Open Watcom C/C++ and Fortran 1.0 や Borland C++ Compiler 5.5( bcc ),Digital Mars C/C++ Compilers( dmc ),さらに AT&T UWIN 3.x や,市販の Intel(R) C++/Fortran Compiler 7.1( Intel ) や Microsoft Visual C++ Version 6.0( vcpp ),Compaq (旧 Digital) Compaq Visual Fortran Version 6 にも対応しています。対応する Fortran コンパイラを持たない bcc,dmc や, Fortran コンパイラが別製品として市販されている Intel や vcpp でも,C のコンパイラさえあれば f2c( Fortran 77 から C への翻訳プログラム )を使った Fortran 77 によるグラフィクス・プログラミングが可能です。
「GrWin グラフィクス・ライブラリ」は主に,シミュレーションや数値計算などの導入教育や科学技術計算で必要となる数値データの可視化(含,アニメーション,対話処理),さらに教育現場での教材作成などを想定して開発されていますが, 高品位な印刷ができることから出版用原図の作成などへの利用も考えられます。
一般的に,Xwindow や Windows などのようなウィンドウをベースとした本格的なアプリケーションの開発には,オブジェクト指向やイベント駆動といったある程度専門的な知識や発想が必要であるといわれています。 また,Xwindow や Windows 上でグラフィクス表示を前提にすると,簡単な文字列を表示するだけでも,旧来の文字ベースのユーザーインターフェース(CUI)によるプログラミングに比べるとかなり煩雑な手続きが必要となってしまい,これらは計算機科学を専門としない人たちにとっては少々敷居の高いものといえます。
このライブラリの特徴の一つは,マルチ・ウィンドウや対話処理に対応しながら,CUI をそのまま残した点にあり,グラフィクス表示やイベント処理は grwnd.exe という独立したプログラムにより行われます。 本ライブラリによるグラフィクス・プログラミングは,DOS上のグラフィクス・プログラミングやプロッタ用のプログラミングがそうであったように,少数のグラフィクス出力用のルーチンをコールするだけでグラフィクス表示を行うことが可能で,イベント駆動的な発想は不要です。 つまり,プログラムの実行の流れに沿った自然な発想でグラフィクス表示を行うことができるので,Windows のプログラミングに不慣れな人たちやプログラミングの初学者にとっても理解が容易であると期待できます。
また,Fortran や C で書かれた(コンソール)アプリケーションにこのライブラリをリンクしても,READ/WRITE 文やprintf 関数などによる標準の入出力はアプリケーションを起動したコマンドプロンプト(Windows Me/9x の場合は DOS プロンプト)に割当てられたままで,グラフィクス以外の部分には全く影響を与えません。 つまり,数値出力を行うプログラムが完成している場合には,グラフィクス表示や対話処理の部分のみを書き加えることで,既存のプログラムを最初から書き直すことなしに比較的容易にグラフィクス対応の対話型のプログラムに変更することができます。
さらに,本ライブラリは Win32 API のさまざまなオブジェクトもサポートしていて,たとえば,さまざまな線の種類や太さに加えて TrueType フォントも使えますし,メタファイル形式でのファイル出力が可能なので、MS-Word など、メタファイル形式での図形入力をサポートしている多くのアプリケーションのデータに結果を容易に貼り付けることができます。また,ビットマップ・ファイルの取り込みやクリップ・ボードへの貼り付けも可能です。 得られた結果の印刷には,グラフィクス対応のプリンタならほとんどすべての機種が使えるはずで,そのプリンタの能力に応じた高品質の出力結果が得られることから,研究結果の清書用などにも広く使えることでしょう。
本ライブラリはまた,C++ で書かれた本格的なオブジェクト指向のプログラムでも使えますし,Windows 本来のグラフィクス・ベースのユーザーインターフェース(GUI) をもった Windows アプリケーションにリンクして使うこともできます。
本ソフトウェア群はもともと,理工系大学の計算機科学を専門としない学生を対象とした学生実習などで利用する目的で開発された(開発中の)ものです。 しかし,これまで述べてきた特徴から考えると,高校や中学での実習や教材作成,さらに Windows のさまざまな機能を利用したアプリケーションを手軽に作成したい人々にとっても利用価値があるのではと期待しています。
AT 互換機 (いわゆる DOS/V 機) で, Windows Xp/2000/NT/Me/9x (x86) の何れかの OS が動作している環境。
開発に当って,学生や生徒が個人で利用したり,多人数で利用しても経費の問題のないフリーな処理系で利用できることを第一条件としました。 現在のところ, 付加的な dll を必要とせず,単独で動作可能な Windows アプリケーションの作成が可能な MinGW (最新版は MinGW-2.0 )を主な開発対象としていて, Cygwin (最新版は Cygnus Cygwin 1.3.x )や, MinGW や Cygwin の旧版に対応する GNU-Win32 の gcc-2.95.2-mingw32 や gcc-2.95.2-cygb20 と uwin (最新版は AT&T UWIN 3.x)+ gcc-2.95.2-uwin にも対応しています。 また,最近フリーなコマンドライン・コンパイラーとして公開された Open Watcom C/C++ and Fortran 1.0 や Borland C++ Compiler 5.5,Digital Mars C/C++ Compilers,市販の Intel(R) C++/Fortran Compiler 7.1 や Microsoft Visual C++ Version 6.0, Compaq (旧 Digital) Compaq Visual Fortran Version 6 でも利用できます。さらに,Intel(R) C++, Borland C/C++, Microsoft Visual C++, Digital Mars C/C++ 用の f2c ライブラリ(Fortran 77 のソースを C または C++ に変換して使用するためのもの)も用意されていますので,これらの環境で Fortran コンパイラを所有していない場合でも Fortran 77(f77)によるグラフィクス・プログラミングが可能です。
なお,グラフィクス表示を行うための grwnd.exe と,本ライブラリを用いて作成された(コンソール)アプリケーションが NEC-PC98 シリーズでも動作することを旧版で一部確認しましたが,コンパイラーを含む Mingw32 や Cygwin や UWIN が NEC-PC98 シリーズで利用できるかどうかについては未確認です。 また,旧版でサポートしていた Windows NT3.51 についてはこのバージョン(以降も)では対応しませんので,動作するかどうかについても未確認です。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
*1 GrWin 関連文書中で便宜的に使う省略名です。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*2 C++ と Fortran は別製品,評価版あり | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*3 Mumit Khan による MinGW の旧版( ここからもダウンロードできます。) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*4 Cygwin の旧版 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*5 教育・研究ライセンスあり。複数のコンパイラを使用できるが,GrWin は gcc-2.95.2 のみに対応。 |
「GrWin グラフィックス・ライブラリ」は多くのコンパイラに対応していますが, ここでは付加的な dll を必要とせず,単独で動作可能な Windows アプリケーションの作成が可能で, しかもフリーな MinGW-2.0 を使用する場合に限定して説明します。 MinGW の使い方についてここに日本語情報があります。 MinGW-2.0 を使わない場合には以下の b. は読み飛ばしてください。 GrWin で利用できるほかのコンパイラ・システムについては「利用可能な環境」を参照してください。
インストール先や実行コマンドなど,自分の環境に合わせて自由にアレンジ可能ですが, 何をやっているかがよくわからない方は以下の手順を忠実に実行してください。
以下では MinGW-2.0.0-3.exe の実行時の指示に従って, MinGW システムを C:\MinGW にインストールしたものとして説明を続けます。 ほかのディレクトリにインストールした場合には C:\MinGW を自分の環境にあわせて読み替える必要があります。
ダウンロードしたファイル MinGW-2.0.0-3.exe はこれで用済みですので消去しても差し支えありませんが, ディスク容量に余裕がない場合を除いて,再インストールが必要になったときのためにどこかに保存しておくことをお勧めします。
の1行だけのバッチ・ファイルをインストール・フォルダ( C:\MinGW )に作成します。 正しく作成できたかどうかは
で確認できます。確認ができたらこれで MinGW システムのインストール作業は一応終了です。 コマンド・プロンプトを開いたらその都度 C:\MinGW\mingw を1回打ち込むことで, そのコマンド・プロンプト上で MinGW を使うことができます。
これで,MinGW が使用可能になったはずです。これを確かめるために 'gcc -v' を打ち込みます:
上のように表示されれば MinGW-2.0 のインストールは無事終了です。
なお,以上のインストール手順に従った場合,MinGW を使うにはコマンド・プロンプトのウィンドウを開くたびに1度だけですが毎回, C:\MinGW\mingw を打ち込んでパス設定を行う必要があります。 これが面倒な場合には,使用している OS の種類に依存しますが, 次のようにしてパス設定を自動化することもできます:
とします。
とします。
どちらの場合にも,ショートカット名を「MinGW」などとし, プログラム開発を行うフォルダを「作業フォルダ」として設定するとよいでしょう。
GrWin のインストールは自分の環境に合った GrWin のインストーラをダウンロードして実行するだけです。 どのようなファイルがインストールされるかは「配布ファイル」を参照してください。
GrWin をアンインストールするには,「コントロールパネル」の「アプリケーションの追加と削除」から 'GrWin 0999b for xxx' を選択して,「変更と削除」ボタンを押してください。
などとするだけで,Fortran のソースコードで GrWin ライブラリの各ルーチンが正しい引数の並びで呼ばれているかどうかなどの チェックを行うことができます。コンパイルとリンクの時には何もエラーが出ないのに,実行時にエラーが出て異常終了するときなど, f77chk.pl を使うことでエラー個所を発見できる場合があります。 コンパイルとリンクでエラーが出なくなったら一度 f77chk.pl でチェックを行うことで, プログラム開発の能率が大幅に向上するはずです。 より詳しくは配布ファイル中の f77chk.txt を参照してください。
以上でインストールは完了しました。MinGW-2.0 以外の開発環境を使うときには,下の説明で gwf77 や gwgcc などのバッチコマンド名を対応するものに読みかえてください。
それでは,試しにサンプル・プログラムを動かしてみましょう:
と入力してみてください。 サンプルの Fortran ソースファイル trigfn.f から実行ファイル trigfn.exe が,また,C のソースファイル polygon.c から実行ファイル polygon.exe が生成されているはずです。 ここで失敗するようなら,もう一度 MinGW のインストールから調べ直す必要があります。 trigfn.exe の生成に成功したら
として実行してみてください。 グラフィクス・ウィンドウが開いて sin 関数と cos 関数がプロットされ「フォント」ダイアログ・ボックスが開けば Ok です。 ダイアログ・ボックスの各項目を適当に選択してから [OK] ボタンを押せばダイアログ・ボックスは閉じます。 マウス・ポインタをウィンドウ内に移動して適当な点で左ボタンをクリックすればその点にマークが表示され,下部のステータスバーにはその点のワールド座標系の座標が表示されます。 このサンプル・プログラムを終了するには原点(縦軸と横軸の交点)付近で左クリックしてください。 「Message from grwnd」のダイアログボックスが開きますので,[はい(Y)] ボタンを押してください。 これで,グラフィクス・ウィンドウが閉じて,テストは完了です。 ついでですので polygon.exe も実行してみてください。 動作は polygon.f をコンパイルしたものとまったく同じですので demo\Polygon.txt の説明を参照してください。
demo フォルダ内の他のサンプル・プログラムについても gwf77 コマンドを用いて上と同様に実行ファイルを生成してから実行し,動作確認をしてみてください。 同じフォルダ内の *.txt ファイルには対応するサンプル・プログラムについての簡単な説明があります。 MinGW-2.0 で、すべてのサンプル・プログラムの実行ファイルを生成するには、同じフォルダで単に
を入力してください。 VC++ と VF がインストールされている場合には
とすることで、すべてのサンプル・プログラムの実行ファイルが生成されます。 VC++ がインストールされていて,C で書かれたサンプル・プログラムのみの実行ファイルを生成するには、
としてください。Fortran のみの場合には C の代りに F としてください。
本ライブラリでは,(コンソール)アプリケーションの入出力はそのままにして,グラフィクス表示は同梱の grwnd.exe が行います。 つまり,本ライブラリは grwnd.exe にグラフィクス表示のためのコマンドを送る一種のインタープリターを構成するためのもの,といえます。
grwnd.exe 内部では仮想的な「用紙」が設定されていて,「用紙」の左上隅を原点とし,u 軸と v 軸をそれぞれ右向きと下向きにとった「論理デバイス座標系」が使われています。 「論理デバイス座標系」の単位はプリンタに出力するときの1ピクセルに対応しています。 また,「用紙」サイズの縦横比を保ったまま,「用紙」の短い方の辺の長さを1に規格化した座標系を「規格化論理座標系」と呼びます。 「規格化論理座標系」の原点は「用紙」の左下隅に固定され,右と上をそれぞれ正方向にとります。 ユーザーが定義した座標系は「ワールド座標系」と呼ばれ,本ライブラリのほとんどのルーチンではこの「ワールド座標系」を用います。「ワールド座標系」では原点や各方向の単位および正の向きは任意に設定できます。
ユーザーのアプリケーションから GrWin ライブラリの初期化ルーチン (GWINIT) を呼び出すと,grwnd.exe が起動し,メイン(フレーム)・ウィンドウが現れます。 ただし,GWINIT は GWOPEN (または GWOPENX) により内部的に 呼び出されますので, オプション指定が必要な場合を除いて明示的に GWINIT を呼び出す必要はありません。 なお,grwnd.exe は予め任意の方法で起動しておいても構いません。 grwnd.exe を起動するときにコマンドラインで初期設定ファイル名(以下参照)を指定することですべての起動オプション(以下参照)を一度に指定することができます。 また,起動オプションは [ヘルプ] → [起動オプション] のダイアログで対話的に指定することもできますし,コマンドラインで指定しなくてもデフォルトの初期設定ファイルファイルから自動的に読み込ませることもできます。 フレーム・ウィンドウのメニューバーからは,各子ウィンドウに対してのクローズ,消去,印刷といった操作も可能です(以下参照)。
起動時のさまざまなオプションは次項にあるとおりコマンドラインから指定することもできますが,通常は初期設定ファイル( .ini ファイル )で行います。 初期設定ファイルの拡張子は .ini で固定です。 どの初期設定ファイルが使われるかの優先順位は以下のとおりです:
初期設定ファイルにおける各設定は [Defaults] セクションで行います。 設定項目 DefaultDPI には grwnd.exe 内部で仮定される dpi 値を指定します。 dpi 値はビュー(表示)モードを [ビットマップ] にする場合やプリンタで印刷を行う際に参照されますが,何も指定しない場合(デフォルト時)には接続されているプリンタの解像度が使用されます。 しかし,この dpi 値が大きすぎると内部で作られるビットマップも巨大なものとなってしまい,大量のメモリを消費することになって搭載メモリ量によってはシステムが不安定になる恐れがあます。 それを避けるためには設定項目 MaxDPI に,仮定される dpi 値の上限を指定します。 システムについて熟知している場合はこの上限を大きめに設定してもかまいません。 その他の各項目およびそれらの意味についてはについては次項のコマンドライン・オプションを参照してください。 初期設定ファイル中で行頭に '#' がついた行の設定は無視されます。 以下に初期設定ファイルのサンプルを示します。
[Defaults] Storing=1 Buffering=1 StatusBar=1 Inquiring=0 Landscape=1 #Width=800 #Height=560 #PointX=0 #PointY=0 #DefaultDPI=300 MaxDPI=600 #ArrangeMode=2 #ShowMode=10 #ZOrder=1
起動方法: grwnd [オプション] [file.ini] [file1] [file2] ...
-p<X>,<Y> |
フレーム・ウィンドウの位置 (左上隅) をスクリーン座標の (X,Y) に設定 |
---|---|
-s<W>,<H> |
フレーム・ウィンドウの外接四角形のサイズをスクリーン座標で (W,H) に設定 |
-[dpi]<N> |
ビットマップ等の作成時のデフォルト dpi 値 ( N <= MaxDPI ) の設定 |
-a<N> |
ウィンドウの配置モードの設定。 GWarrange(N) と同等 (N = 1..4) |
1: -cascade, 2: -horizontal, 3: -vertical, 4: -iconarrange | |
-m<N> |
フレーム・ウィンドウの表示モードの設定。 GWshowfr(N) と同等 (N = 0..14) |
0: -hide, 1: -maximize, 2: -minimize, 3: -restore, 4: -show, | |
5: -showmaximized, 6: -showminimized, 7: -showminnoactive, | |
8: -showna, 9: -shownoactive, 10: -shownormal, | |
11: -topmost, 12: -notopmost, 13: -top, 14: -bottom | |
-z<N> |
フレーム・ウィンドウの表示 Z 順の設定。 GWshowfr(N+10) と同等 (N = 1..4) |
1: -topmost, 2: -notopmost, 3: -top, 4: -bottom | |
-t,-T | 保存モード ON,OFF |
-b,-B | バッファリング・モード ON,OFF |
-r,-R | ステータスバー表示 ON,OFF |
-i,-I | 確認モード ON,OFF |
-l,-L | プリンタのランドスケープ(用紙横置き)モード ON,OFF |
フレーム・ウィンドウ最上部の,タイトルが表示されているタイトルバーの下のバーは「メニューバー」,最下部のバーは「ステータスバー」と呼ばれていて,以下の機能があります:
メニューバーの [ファイル] からはファイルからの読み込み [開く] の他,現在のグラフィクス・データの印刷 [印刷],ファイルへの書き込み [保存], [名前を付けて保存],アクティブ・ウィンドウのクローズ [閉じる] といった操作が行なえます。 印刷時の注意点については下に記述がありますので参照してください。
なお,通常,右上隅のXボタンを押すか,左上隅のボタンを押して「閉じる」を選ぶことによってフレーム・ウィンドウを閉じることができますが,場合によってアプリケーション・エラーやメモリー・リーク(再利用不能のメモリー領域が生じてしまうこと)が発生する場合がありますので,ウィンドウを閉じるには,なるべくライブラリの GWQUIT を call するか,メニューバーから [ビュー]->[停止/終了] を選択してください。
[ファイル] からの操作は多くのウィンドウズ・アプリケーションの場合と同様ですので詳細は省略します。
[編集] からはクリップボード(以下参照)関連の操作を行うことができます。
[ビュー] からは主に子ウィンドウの表示に関係するコントロールを行います。 [停止/終了] からは描画中のジョブの停止や強制終了が可能です(以下参照)。[消去] はアクティブなウィンドウに属する保存オブジェクトを消去し,画面をクリアします。 [再生] は保存されているすべてのオブジェクトを忠実に再実行しますので,GWSLEEP などを使ったアニメーションも再生できます。 [再描画] は,描画のルーチンが実行されたはずなのに画面に表示されない場合や,何らかの理由で画面が崩れた場合に使います。 [再生] と違って, [再描画] では保存されている背景やバッファを利用してできるだけ短時間に再描画を行います。 [フラッシュ描画] は GWFLUSH の呼び出しと同等で,描画が保留されているオブジェクトのフラッシュ描画を実行します。
[ビュー] -> [保存モード],[バッファリング],[ステータスバー],[確認] は,それぞれ,保存モード,バッファ描画モード,ステータスバーの表示,確認モードの切り替えのトグル・スイッチです。 描画オブジェクト数が膨大で保存モードのままではコンピュータのメモリを使い切ってしまう場合などには保存モードを off,バッファ描画モードを on (この状態をペイント・モードと呼びます)にしてみてください。 ペイント・モードにすると,描画中のオブジェクト保存が行われないのでメモリ使用量が描画オブジェクト数に比例することもなく,速度的にも有利になります。 ただし,保存モードを off にすると,きれいな印刷ができなかったり, アニメーションの再生やウィンドウのリサイズやビュー(表示)モード(後述)の変更ができないといった制限が生じます。 なお,バッファ描画モードとは,現在の画面と同じ分解能の「用紙」を内部的にビットマップとして用意して画面への再描画を高速化するもので, 描画オブジェクトの数が極端に多い場合など再描画に時間がかかる場合に有効です。 ただし,バッファ描画モードでは画面上でのウィンドウの大きさにより必要となるメモリーが大幅に変化しますので,この機能がはたらかない場合にはウィンドウの大きさを小さくしてみてください。 メモリーは大量に消費されますが,以下で説明するビュー(表示)モードを [ビットマップ] にしてから,このバッファ描画モードを利用すれば,印刷時の1ピクセルを画面の1ピクセルに対応させた画面を高速にスクロールして見ることができます。 確認モードを ON にしておくと,保存オブジェクトの全消去が行われるときに警告のダイアログボックスを表示し,クリップボードの取り込みを行ったときにその内容が表示されます。
[表示モード] からはビュー(表示)モードの選択を行うことができます(以下参照)。
[ウィンドウ] -> [フィット] を選択すると,フレーム・ウィンドウのサイズを現在の (子) ウィンドウにフィットさせる。 [ウィンドウ] -> [最前面] はトグルスイッチで,ON の時にはフレーム・ウィンドウ全体をつねに最前面に置く。描画中のウィンドウが他 (たとえば,コンソール・ウィンドウ) に隠れないようにすることができる。 その他の [ウィンドウ] からの操作は多くのウィンドウズ・アプリケーションの場合と同様です。
[オプション] からは設定省略時のテキスト・フォントと記号フォント,前景色と背景色をそれぞれのダイアログボックスで選択することができます。
なお,「色の作成」ダイアログボックスの下部の 16 個の長方形の色は現在のカスタムカラーを示していて,ダイアログボックスからでもプログラムからでも変更することができます。
プログラムからカスタムカラーを変更する方法についてはライブラリ・マニュアルの GWCOLOR の項を参照してください。
[ヘルプ] からは grwnd.exe のバージョンやビルド番号,ディスプレーの解像度などを知ることができます。また,ライブラリ・マニュアルをここから参照することもできます。
grwnd.exe が起動され,アプリケーションからグラフィクス・ウィンドウが開かれるか,既存のファイルがオープンされると,フレーム・ウィンドウ下部のステータスバーにアクティブなウィンドウが属するアプリケーション番号とウィンドウ番号,開かれているウィンドウの数,現在のマウス位置(カーソルがグラフィクス・ウィンドウ内にあるときのみ有効),アクティブなウィンドウの左下と右上の点の座標(論理デバイス座標),メモリーに保存されているオブジェクト数が表示されます。 ステータスバーに任意の文字列を表示するルーチン GWSETMSG も用意されています。 [ビュー] -> [ステータスバー] でステータスバーを非表示にすれば,描画が若干速くなります。
グラフィクス・ウィンドウのビュー(表示)モードは [ビットマップ], [等方的], [フィット], [全体], [拡大] の中から選択することができます。ビュー(表示)モードの変更は,通常メニューバーの [表示モード] から行いますが,アプリケーションから GWVWMOD を呼び出すことでも可能です。 各モードの意味は以下の通りです:
印刷はメニューバーの [ファイル] -> [印刷] で行います。 "「用紙」" の幅が高さより広い場合には,必要に応じて印刷の前に,[プリンタの設定] でプリンタをランドスケープ(横長)に設定してください。 印刷結果はビュー(表示)モードに依存しますので,[印刷のプレビュー]で確認するとよいでしょう。なお,多くのプリンタ・ドライバでは塗りつぶしの機能 (GWFLOOD 参照) はサポートされていないようです。
[編集] から [コピー] を選ぶと現在のウィンドウの内容が Windows のクリップボードにコピーされますので,クリップボードをサポートしている他のアプリケーションで描画結果を処理することができます。 その逆に,クリップボードからビットマップを取り込むこともできます。 そのためには,[編集] から [取り込み] を選択してください。 これにより,ビットマップ番号 0 にクリップボードの内容が取り込まれます。 このとき,確認モードが ON の場合には取り込んだ内容がダイアログボックスに表示されます。 GWCOPYBMPにより,ビットマップ番号 0 の内容を他の番号にコピーすることで,クリップボードからの取り込みを何度でも行うことができます。 なお,ビットマップ番号についてはライブラリ・マニュアルの GWGETBMPの項を参照してください。
途中結果を印刷したいときや,予期していない表示が行われたり,実行時間が長すぎるなどした場合に表示を一旦停止,または実行そのものをキャンセルしたい場合があります。 そのようなときは,目的のウィンドウをアクティブにしてから,メニューバーの [ビュー] -> [停止/終了] を選択してください。強制終了するかどうかのメッセージボックスがポップアップして表示は一旦停止しますので,印刷やビュー(表示)モードの変更,ウィンドウサイズの調整など,任意の作業を行うことができます。実行を継続する場合には「いいえ」ボタンを,強制終了したい場合には「はい」ボタンを押してください。
GrWin ライブラリ本来のルーチンを呼び出して使う場合より自由度が若干制限されますが,PGPLOT の X-Window ドライバと同等以上の機能があり, 手持ちの pgplot を使ったソース・コードを Windows 上で動かしたい場合や印刷したい場合などに使えます.
下の表にあるのは,各コンパイラ・システムで PGPLOT アプリケーションを開発/実行するために必要なファイルと, オリジナル の配布ファイルにあるデモのすべての実行形式を tar + gzip で圧縮したものです。 ただし,デモの実行形式を除いて,すべてが GrWin のインストーラ版に含まれていますので,インストールが簡単なインストーラ版の使用をお勧めします。
ファイル名 | 対応するコンパイラ |
---|---|
pggw0999b-MinGW.tgz | MinGW-2.0 |
pggw0999b-cygwin.tgz | Cygnus Cygwin 1.3.x |
pggw0999b-watcom.tgz | Open Watcom C/C++ and Fortran 1.0 |
pggw0999b-f2bcc.tgz | Borland C++ Compiler 5.5 + f2c |
pggw0999b-f2dmc.tgz | Digital Mars C/C++ Compilers + f2c |
pggw0999b-Intel.tgz | Intel(R) C++/Fortran Compiler 7.1 ( f2c も可 ) |
pggw0999b-f2vcpp.tgz | Microsoft Visual C++ Version 6.0 + f2c |
pggw0999b-mingw32m.tgz | gcc-2.95.2-mingw32 |
pggw0999b-mingw32.tgz | gcc-2.95.2-mingw32 |
pggw0999b-cygb20.tgz | gcc-2.95.2-cygb20 |
pggw0999b-uwin.tgz | AT&T UWIN 3.x + gcc-2.95.2-uwin |
現在のところ Compaq Visual Fortran Version 6 (VF) に対応したバイナリの配布は行われていません。 VF のユーザーは GrWin ツールキットを使うか,ここを参照してまず VF 用の PGPLOT ライブラリ・ファイルを作成する必要があります。
下に Cygwin 1.3.x の場合についてのインストール方法とバッチファイルの使い方についての簡単な説明があります。 各配布ファイルにはコンパイラに対応したバッチファイルが含まれていますので, cygwin 以外の環境を使っている場合には下の説明のバッチファイル名を自分の環境のバッチファイル名に読みかえてください。
ライブラリのその他の使用方法についてはオリジナルの配布ファイルに含まれるドキュメントを参照してください.なお,デモの実行中に終了したい場合には,メニューから [ビュー] -> [停止/終了] を選択して終了させてください.
$ mkdir /pgplot
$ cd /pgplot
$ tar xvfz /pgplot/pggw0999b-cygwin.tgz
$ cp *.a /usr/lib
$ cp *.h /usr/include
$ PATH=/pgplot:$PATH
$ export PATH
$ PGPLOT_DIR=/pgplot
$ export PGPLOT_DIR
実行ファイルを生成するためのバッチファイルが配布ファイルに含まれているので利用すると便利.引数には 9 個までのソースファイル名やコマンドライン・オプションを指定することができるが,第一引数には拡張子を除いたメインのソースファイル名を指定する。典型的な使い方は以下の通り:
$ pggwf77.bat pgdemo1
( Fortran のソースファイル pgdemo1.f から実行ファイル pgdemo1.exe が生成される)
$ pggwgcc.bat cpgdemo
( C のソースファイル cpgdemo.c から実行ファイル cpgdemo.exe が生成される)
$ pggwcpp.bat foo
( C++ のソースファイル foo.cpp から実行ファイル foo.exe が生成される)
sh ../makemake .. gnuwin32 gwlib
" を実行する.これにより make に必要な環境が作られる.
make
" を実行する.Fortran 用のライブラリと Fortran によるデモ用の実行ファイルができる.
make clear
" を実行する(省略化).
make cpg
" を実行する.C 用のライブラリと C によるデモ用の実行ファイルができる.
strip *.exe
" を実行する(省略化).
ユーザーの (コンソール) アプリケーションで GrWin グラフィクス・ライブラリを利用するには,MinGW / mingw32 / cygwin / uwin の g77 や gcc によるリンク時のオプションとして
-Wl,--subsystem,console -lGrWin -mwindows
gwf77 polygon
gwf77 abc xyz.c
gwgcc aaa
C または C++ 言語で書かれた Windows アプリケーションの場合には 'console' オプションを 'windows' に置き換えて
-Wl,--subsystem,windows -lGrWin -mwindows
なお,Fortran 用のライブラリ・ルーチンは内部で C のルーチンを call している場合が多いので,C 言語でプログラミングを行ったほうが効率が良いでしょう。
VC++ や VF をコンソール・ウインドウで使うためのバッチ・ファイル gwcl.bat (C, CUI用), gwclw.bat (C, GUI用), gwdf.bat (Foertran, CUI用) など, 各コンパイラシステム用のバッチファイルが用意されていますので、必要に応じてエディタなどでバッチファイルの内容を参照してください。
この問題はそのような漢字を,1バイト目は16進表記し,2バイト目は「円記号」 を表すエスケープ文字 '\\' を使って表すことで回避できます.たとえば、'能'の シフト JIS コードは '0x945C' なので
WRITE(*,*) '能率 = 'などとするとこの問題が生じますが、
WRITE(*,*) '\x94\\率 = 'または
WRITE(*,*) '能\率 = 'で、期待通りの結果が得られます。C の場合も同様です。詳しくは、 ホームページの「Q and A」 を参照してください。
「GrWin グラフィックス・ライブラリ」の公式配布場所( ftp サイト)は
です。また, ESRF に ミラーサイトが設置されて いますのでそちらもご利用ください.GrWin グラフィックス・ライブラリをインストールするには,自分の環境に合わせて, 下の表のファイル名のどれか1つをクリックして、ハードディスクにファイルをコピー して利用してください。 よくわからない場合は,MinGW の最新版をインストールしてから, lGrWn0999b-MinGW.exe をダウンロードするとよいでしょう。 これだけで自分のパソコンに Fortran と C/C++ のための グラフィクス・プログラミング環境を構築することができます。
インストーラによるインストール時に pgplot を選択(デフォルト)すると PGPLOT ライブラリを使うために必要なファイルがインストールされ,陰線処理やコンター図を含む豊富な高レベル・ルーチン群( 出力例はここ )を Windows 上で利用することができるようになります。 含まれている PGPLOT ドライバは GrWin ライブラリを使って実装したもので, PGPLOT の X-Window ドライバと同等以上の機能があり, UNIX で動かしていた PGPLOT アプリケーションを Windows に容易に移植することができます。 インストールの詳細については「#INSTALL">インストール」を参照してください。
ファイル名 | 対応するコンパイラシステム |
---|---|
lGrWn0999b-MinGW.exe | MinGW-2.0 |
lGrWn0999b-cygwin.exe | Cygnus Cygwin 1.3.x |
lGrWn0999b-watcom.exe | Open Watcom C/C++ and Fortran 1.0 |
lGrWn0999b-f2bcc.exe | Borland C++ Compiler 5.5 + f2c |
lGrWn0999b-f2dmc.exe | Digital Mars C/C++ Compilers + f2c |
lGrWn0999b-Intel.exe | Intel(R) C++/Fortran Compiler 7.1 ( f2c も可 ) |
lGrWn0999b-f2vcpp.exe | Microsoft Visual C++ Version 6.0 + f2c |
lGrWn0999b-vf.exe | Compaq Visual Fortran Version 6 |
lGrWn0999b-mingw32m.exe | gcc-2.95.2-mingw32 |
lGrWn0999b-mingw32.exe | gcc-2.95.2-mingw32 |
lGrWn0999b-cygb20.exe | gcc-2.95.2-cygb20 |
lGrWn0999b-uwin.exe | AT&T UWIN 3.x + gcc-2.95.2-uwin |
lGrWn0999b.exe | 全配布ファイル(インストーラ版) |
lGrWn0999b.lzh | 全配布ファイル (lha で圧縮したもの) |
lGrWn0999b.tgz | 全配布ファイル (tar + gzip で圧縮したもの) |
「GrWin ツールキット」とは GrWin のライブラリ・ ファイルを生成するためのソースコードのセットのことで,f2c や PGPLOT のための パッチを含みます。 Compaq Visual Fortran Version 6 で PGPLOT を使用する場合にはまずこのツールキットを用いて VF 用の PGPLOT ライブラリ・ファイルを作成する必要があります。また,GrWin が対応していないシステムに移植を行いたい場合や個人利用のための改造を行いたい場合にもこれを使います。 それ以外の一般ユーザには多分必要ないでしょう。 「GrWin ツールキット」を使って上の表にないコンパイラ・システムに対応できた場合 は是非ご一報ください。
ファイル名 | 内容 |
---|---|
GrWinTk-0999b.tgz | GrWin ツールキット |
下の表にダウンロード可能な他のファイルを示します。 それらのファイルそのものやそれらの圧縮ファイルを展開して得られるファイルは, 次に述べる例外を除いてすべて,上の2つの表に列挙したファイルに含まれています。 ダウンロードの総量を抑えるためなど,個別のファイルだけを必要とする場合に ダウンロードしてください。
下の表の pggw0999b-XXX.tgz は,コンパイラ・システム XXX で PGPLOT アプリケーションを開発/実行するために必要なファイルと, PGPLOT のオリジナルの配布ファイルにあるデモすべての実行形式を tar + gzip で圧縮したものですが,デモの実行形式を除くとインストーラ版にすべて含まれています。 これらは PGPLOT のデモを実行してみたいときにダウンロードしてください。
拡張子が .tgz や .lzh のようなファイルは圧縮形式のファイルですのでそのようなファイルをダウンロードして利用するには復元(「解凍」ともいう)を行う必要があります。 圧縮ファイルの復元が必要な場合は奥村さんのページを参考にするとよいでしょう。
なお,旧版の配布ファイルが ここに保存されていますので必要に応じてご利用ください (旧版の再配布はご遠慮ください)。
インストーラ( lGrWn0999b-XXX.exe; XXX はコンパイラシステムの省略名 )によりインストールを行うと以下のファイルが最適なディレクトリに分散インストールされます。 なお, lGrWn0999b.lzh と lGrWn0999b.tgz は GrWin が対応しているすべての環境 のためのファイルを圧縮したもの(圧縮版)で, lGrWn0999b.exe はそのインストーラ版です。圧縮版をダウンロードした場合は解凍後に自分ですべてのインストールを行う必要がありますし,そのインストーラ版でも,インストール時に複数の環境を選択すると実行ファイルはすべて,指定した GrWin フォルダに格納されてしまうので,そのフォルダに自分でパスを通す必要があります。 インストールに自信がない人は自分の環境に合ったインストーラ版を使用することを強くお勧めします。 下に,インストールされるフォルダ別に,各配布ファイルについての簡単な説明を加えます。なお,バッチ・ファイル名に含まれる {F77}, {CC}, {CPP} は各使用環境における FORTRAN, C, C++ のコンパイラ名の略記ですのでつぎの表の対応する項目と置き換えて読んでください:
| ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
(*) GNU = MinGW, cygwin, uwin, mingw32m, mingw32, ctgb20 |
ファイル名 | 内 容 |
---|---|
README.html | README ファイル/HTML版 |
README.txt | README ファイル/テキスト版 |
qanda.html | Q and A/HTML版 |
lGrWn0999b.html | ライブラリ・マニュアル/HTML版 |
lGrWn0999b.txt | ライブラリ・マニュアル/テキスト版 |
f77chk.txt | f77chk.pl の簡単な説明 |
demo\ | GrWin のサンプル・プログラムの入ったディレクトリ |
pgplot\ | PGPLOT アプリケーションを実行するために必要なファイルと PGPLOT ライブラリのサンプル・プログラムの入ったディレクトリ |
lGrWn0999b-XXX.iss | インストーラのソースコード( XXX はコンパイラの省略名 ) |
unins000.exe | アンインストーラの実行ファイル |
unins000.dat | アンインストーラが使用するデータ・ファイル |
GrWin.ico | アンインストーラが使用するアイコン |
ファイル名 | 内 容 |
---|---|
grwnd.exe | Windows Xp/2000/NT/Me/9x 上で本ライブラリを利用するための Windowsアプリケーション |
grwnd.ini | grwnd.exe のための .ini ファイル |
f2c.exe | FORTRAN77 で書かれたソースファイルを C に翻訳するための f2c の実行ファイル |
f77chk.pl | Fortran77 用のソース・コード・チェッカー (Perl スクリプト) |
library.def | ライブラリ関数の定義ファイル( f77chk.pl で使用 ) |
gw{F77}.bat | 拡張子が .f の Fortran ファイルから実行ファイルを生成するためのバッチ・ファイル |
gw{CC}.bat | 拡張子が .c の C ファイルから実行ファイル(CUI)を生成するためのバッチ・ファイル |
gw{CC}w.bat | 拡張子が .c の C ファイルから実行ファイル(GUI)を生成するためのバッチ・ファイル |
gw{CPP}.bat | 拡張子が .cpp の C++ ファイルから実行ファイル(CUI)を生成するためのバッチ・ファイル |
gw{CPP}w.bat | 拡張子が .cpp の C++ ファイルから実行ファイル(GUI)を生成するためのバッチ・ファイル |
gwf2{CC}.bat | 拡張子が .f の Fortran ファイルから実行ファイルを生成するためのバッチ・ファイル( f2c 用 ) |
pggw{F77}.bat | PGPLOT ライブラリを使用した,拡張子が .f の Fortran ファイルから実行ファイルを生成するためのバッチ・ファイル |
pggw{CC}.bat | PGPLOT ライブラリを使用した,拡張子が .c の C ファイルから実行ファイル(CUI)を生成するためのバッチ・ファイル |
pggw{CC}w.bat | PGPLOT ライブラリを使用した,拡張子が .c の C ファイルから実行ファイル(GUI)を生成するためのバッチ・ファイル |
pggwf2{CC}.bat | PGPLOT ライブラリを使用した,拡張子が .f の Fortran ファイルから実行ファイル(CUI)を生成するためのバッチ・ファイル( f2c 用 ) |
ライブラリ名 | 内 容 |
---|---|
GrWin | GrWin のライブラリ・ファイル |
GrWin0 | GrWin のライブラリ・ファイル(除,calcomp ライブラリ) |
calcomp | GrWin のライブラリ・ファイルから calcomp ライブラリ部分だけを取り出したもの(GrWin =GrWin0 + calcomp) |
pgplot | PGPLOT ライブラリのライブラリ・ファイル( GrWin 使用) |
cpgplot | PGPLOT ライブラリを C で使うためのライブラリ・ファイル( GrWin + pgplot 使用) |
f2c | f2c.exe で C に翻訳したソースから実行ファイルを生成するためのライブラリ・ファイル |
ファイル名 | 内 容 |
---|---|
GrWin.h | 利用できるすべの関数のプロトタイプが宣言されているC言語用のヘッダ・ファイル |
cpgplot.h | PGPLOT ライブラリを C で利用するためのヘッダ・ファイル |
f2c.h | f2c.exe で C に翻訳したソースをコンパイルするために必要なヘッダ・ファイル |
grwnd.exe を含む本ライブラリは未だ開発中ですが,Version 0.99.9b はβ版であり,仕様は最初の正式公開版 1.00.X とほぼ同じ予定です。 マニュアルの不備も予想されますし,まだ思わぬ問題が存在するかもしれませんので, お気づきの点をメーリングリストに報告していただければ幸いです。
今後バージョンアップが行われた場合には,ライブラリと grwnd.exe のバージョン(README.txtに記載されているものと,メニューバーの [ヘルプ] -> [grwnd について] で確認)が一致していること確認する必要があります。 ライブラリのバージョンと,適合する grwnd.exe のバージョンは,プログラムで GWVERSION を呼び出すことによっても調べることができます. 古いライブラリで作成されたアプリケーションは新しい grwnd.exe では動かないと思ったほうが良いでしょう(その逆も)。
実行ファイルにリンクした GrWin ライブラリと grwnd.exe のバージョンが一致していない場合には,
配布ファイル中のユーティリティー f77chk
を利用すれば,Fortran のソースコードが現在のバージョンに適合しているかどうかを調べることができます。
grwnd.exe と vcpp\GrWin.lib は Microsoft VC++ 6.0 (grwnd.exe は MFC) を使用して作成しました。 MinGW\*.a は MinGW-2.0 を使用して作成しました。 mingw32\*.a と mingw32m\*.a は gcc-2.95.2-mingw32 を使用して作成しました。 cygb20\*.a 及び cygwin\*.a はそれぞれ,Cygnus Cygwin B20.1 + gcc-2.95.2-cygb20 及び Cygnus Cygwin 1.3.x を使用して作成しました。 uwin\*.a は AT&T UWIN 3.x + gcc-2.95.2-uwin を使用して作成しました。 watcom\*.lib は Open Watcom C/C++ 1.0 を使用して作成しました。 bcc\*.lib は Borland C++ Compiler 5.5 を使用して作成しました。 dmc\*.lib は Digital Mars C/C++ Compilers を使用して作成しました。 intel\*.lib は Intel(R) C++ Compiler 7.1 を使用して作成しました。 「GrWin グラフィックス・ライブラリ」のソフトウェア群についての著作権は 溜渕 継博 が有します。 本ソフトウェア群の利用によって損害が生じたとしても,作者はそれらの損害等に一切責任を負いません。 また,バグの fix やバージョン・アップなどについての責任もありません。 なお,バグ等の報告は歓迎します。
本ソフトウェア群はフリー・ソフトウェアですので,個人または団体で自由に利用できます。 再配布については,配布ファイル lGrWnXXX.yyy (XXX はバージョン番号 yyy は圧縮形式)の配布形態,すなわち,展開後のすべてのファイルとディレクトリ構造を保つことを条件に自由に行って構いませんが,その際に,再配布に必要な経費以外の金銭の授受を禁止します。 なお,団体で利用される場合には人数や利用目的等について連絡をいただけると幸いです。
本バージョンは未だ開発途中の段階のものですので,より新しいバージョンが本作者によりリリースされた場合には本バージョンの再配布を禁止します。 ただし,本作者による新しいバージョンのリリースの後でも,古いライブラリをリンクしたアプリケーションとともに,そのアプリケーションを動作させるときに必要となる,対応する grwnd.exe と README.html, および README.txt のみを再配布することは認めます。
本ライブラリ及び grwnd.exe に関する作者への連絡は grwinlib@spdg1.sci.shizuoka.ac.jp へお願いします。