グラフィックス座標の設定

座標設定ルーチンは,グラフィックスが画面上のどこに表示されるかを制御します。Visual Fortran グラフィックス・ルーチンは,次の座標の組を認識します。

プログラマが変更しない限り,ビューポート座標系は物理座標系と同じです。物理的な原点 (0,0) はつねにディスプレイの左上隅にあります。QuickWin におけるディスプレイは,(フル・スクリーン・モードにしない限り) 実際のモニタ画面ではなく,子ウィンドウのクライアント領域を意味しています。X 軸は左から右に向かって増大し,Y 軸は上から下に向かって増大します。基本ビューポートは選択されたモードの大きさを持ちます。QuickWin アプリケーションでは,子ウィンドウの現在のクライアント領域外に描画を行うことができます。その後,子ウィンドウを拡大すると,それまでフレーム外に描かれていたものが見えるようになります。

また,座標ルーチンを使うと,物理座標系,ビューポート座標系,およびウィンドウ座標系間で変換を行うことができます (座標系についての詳細は,「グラフィックス要素の描画」を参照)。

X 軸と Y 軸のピクセルの大きさは SETWINDOWCONFIG で設定することができます。これらの値の参照は,GETWINDOWCONFIG から返される wc%numxpixelswc%numypixels の値を通して行います。同じように,GETWINDOWCONFIG は,wc%numcolors の値を通して,現在のモードで利用できる色の範囲も返します。

さらに,SETCLIPRGNSETVIEWPORT を使用すると,グラフィックス領域を定義することができます。どちらの関数も,グラフィックス出力に利用できる使用可能なウィンドウ領域のサブセットを定義します。SETCLIPRGN はビューポート座標を変更するわけではなく,単に画面の一部をマスクします。SETVIEWPORT は,ビューポートの境界をプログラマが指定した上限に再設定し,原点をこの領域の左上隅に設定します。

SETVIEWORG を使うと,ビューポート座標系の原点を,物理的な原点を基準とする新しい相対位置に移動することができます。ただし,ビューポート座標がどう設定されていても,現在のグラフィックス出力位置はつねに GETCURRENTPOSITIONGETCURRENTPOSITION_W を使って知ることができます (ビューポートとクリッピング領域についての詳細は,「グラフィックス要素の描画」を参照)。

ウィンドウ座標系を使うと,任意のデータの組を画面にちょうど収まるように拡大縮小することができます。ウィンドウ座標軸の範囲としては,プログラムで扱うデータに適した任意の座標範囲 (0 ~ 5000 など) を定義することができます。プログラムに対して,ウィンドウ座標系を画面上の特定の領域に収める (特定のビューポート座標の組にマップする) ように指示することで,グラフや図形を任意の大きさに拡大縮小することができます。SETWINDOW は,指定された値で区切られたウィンドウ座標系を定義します。この例としては,...\DF98\SAMPLES\TUTORIAL ディレクトリにある Visual Fortran サンプルSINE.F90 を参照してください。

GETPHYSCOORD はビューポート座標を物理座標に変換し,GETVIEWCOORD は物理座標をビューポート座標に変換します。同じように,GETVIEWCOORD_W はウィンドウ座標をビューポート座標に変換し,GETWINDOWCOORD はビューポート座標をウィンドウ座標に変換します。