1998年1月9日作成 WinCgh CGH計算プログラム (c) 1998 吉川 浩 0.はじめに  WinCgh はホログラムを計算するプログラムです.このプログラムは フリーソフトですが著作権は作者が保持します.また,使用の結果は 保証いたしません.再配布は自由ですが,このファイルを含め,添付 されたファイルを含めそのままの状態で再配布してください. 1.使い方  ホログラムを計算するためには,プログラム本体の WinCgh の他に 2つのファイルが必要です.1つは設定ファイルで,計算のパラメータや 入出力ファイルを指定します.指定されていないパラメータには既定値が 代入されます.2つめは物体ファイルで,ホログラムとして記録する物体 を点光源の集合として表した座標値と輝度情報が入っています.これらの ファイルの詳しい説明は2.と3.を見てください.  まず WinCghをダブルクリックして起動してください.つぎに設定ファ イル名を指定します.ファイル名の指定には,白い四角の部分にファイ ル名を直接入力するか,「参照」をクリックしてファイルを選ぶ方法が あります.設定ファイルを指定したら,「OK」をクリックしてください. 計算が始まります.計算を中止するには,「中止」をクリックします. 計算が終了するとホログラムがビットマップファイルで保存されます. ファイル名は設定ファイルで指定します.指定が無いときは既定値となり ます.  サンプルファイルの line.ini を選んだときは,ホログラムファイルは out.bmp となります.表示するにはビットマップファイルが表示可能な アプリケーション(「ペイント」など)を使用してください.  なお,計算がどのようなパラメータで行なわれたかのログは, cghlog.txt に保存されます.ただし,このファイルは上書きされますので 保存する場合は必要に応じて名前を変更するなどしてください. 2.設定ファイルについて  サンプルファイルの line.ini の中身を例にして説明します.設定ファ イルである line.ini の中身は次のようになっています. # param file for cgh infile point.dat # POINT.DAT outfile out.bmp holosize 120 90 # holo size end '#'はコメントの開始で,ここから行末までは無視されます.それ以外は, キーワード [値] という形式でパラメータを指定します.キーワードには以下のものが あります. infile: 物体データファイル名の指定 例:infile ファイル名(フルパスも可) outfile: 出力(ホログラムビットマップ)ファイル名の指定 例:outfile ファイル名(フルパスも可) holosize: ホログラムビットマップのサイズ 例:holosize 横のピクセル数 縦のピクセル数 window: ホログラムサブウィンドウの指定  大きなホログラムを分割して計算する場合に指定します.  (本バージョンではサポートしていません) 例:window xstart ystart xsize ysize pitch: ホログラムの画素ピッチ  最終的なホログラムの縦横の画素ピッチをメートルで指定します.  出力装置に応じて指定してください. 例:pitch 横方向のピッチ 縦方向のピッチ scale: 物体データのスケールファクタ  物体データの座標値はプラスマイナス1の範囲内に規格化して与えます.  このパラメータは座標値の1が物理的な大きさの何メートルに対応する  かを指定します. 例:scale スケールファクタ z_offset: 物体データの中心位置のz座標  物体座標の原点 (0, 0, 0) をホログラムの中心から z_offset だけ  離れた位置になるようにします.メートルで指定します. 例:z_offset z座標値 refp: 参照光源の座標  参照光は点光源で表し,その位置を絶対値(メートル)で指定します.  参照光を平行光にしたいときはz座標を大きな値にしてください. 例:refp x y z lambda: 光の波長をメートルで指定します 例:lambda 光の波長 end: ファイルの終わり  このキーワードがあると,それ以降は無視します. 例:end キーワードで指定しなかったときの既定値は以下のとおりです. infile infile.dat # input data file outfile outfile.bmp # output bmp file holosize 320 240 # hologram size (x, y) window 0 0 320 240 # subwindow (xstart, ystart, xsize, ysize) pitch 5e-006 5e-006 # PIXEL pitch (x, y) scale 0.0017 # scale factor of object points z_offset 0.12 # z offset of object points refp 0 0.0019 0.12 # reference point source(x, y, z) lambda 6.33e-007 # Wave length lmbda 3.物体データファイルについて  サンプルファイルの point.dat の中身を例にして説明します. point.dat の中身は次のようになっています. 1 0 0.0 0.0 0.0 0 1 物体ファイルはヘッダー部と本体の2つの部分からなります.1行目は ヘッダー部で,点光源の総数を示します.上の例では点光源数は1個です. 2行目以降は本体で点光源の番号と座標値,そして初期位相と振幅を 与えます.上の場合では, 0 0.0 0.0 0.0 0 1 点光源番号 X座標 Y座標 Z座標 初期位相 振幅 の順に並んでいます.点光源番号は0から始まります.X,Y,Z座標は 最小値が−1,最大値が1となるようにします.初期位相は通常は0で かまいませんが,多数の点光源が整然と並んでいるときは,−πからπ の範囲でランダムとする方が良いことがあります.振幅は点光源の明るさ ですが,強度(パワー)ではなく振幅であることに注意してください. 4.おわりに  このプログラムは公開を目的として作成したソフトではないので, あまり説明等が十分ではないかもしれません.問い合わせについては, 時間に余裕のある場合のみ応じますのでご了承ください. 問い合わせ先  吉川 浩  メールアドレス hiroshi@ecs.cst.nihon-u.ac.jp