グラフィックス関数:現在のグラフィックス色でパイ形形状を描画します。
モジュール:USE DFLIB
形式
result = PIE (i, x1, y1, x2, y2, x3, y3, x4, y4)
result = PIE_W (i, wx1, wy1, wx2, wy2, wx3, wy3, wx4, wy4)
i
(入力) INTEGER(2)。塗り潰しフラグ。以下のシンボル定数 (\DF98\INCLUDE サブディレクトリの DFLIB.F90 に定義) の 1 つを使うことができます。
$GFILLINTERIOR - 現在の色と塗り潰しマスクを使って絵を塗り潰します。
$GBORDER - 絵を塗り潰しません。
x1, y1
(入力) INTEGER(2)。境界矩形の左上隅のビューポート座標。
x2, y2
(入力) INTEGER(2)。境界矩形の右下隅のビューポート座標。
x3, y3
(入力) INTEGER(2)。開始ベクトルのビューポート座標。
x4, y4
(入力) INTEGER(2)。終了ベクトルのビューポート座標。
wx1, wy1
(入力) REAL(8)。境界矩形の左上隅のウィンドウ座標。
wx2, wy2
(入力) REAL(8)。境界矩形の右下隅のウィンドウ座標。
wx3, wy3
(入力) REAL(8)。開始ベクトルのウィンドウ座標。
wx4, wy4
(入力) REAL(8)。終了ベクトルのウィンドウ座標。
結果
結果の型は INTEGER(2) です。成功すれば非ゼロが返され,そうでなければ 0 が返されます。パイがクリップされたり,一部が境界の外にはみ出した場合,パイが正しく描画されたとみなされ,結果は 1 になります。パイが完全に境界外で描画された場合,結果は 0 になります。
パイの境界は,SETCOLORRGB で設定された現在の色で描画されます。
PIE 関数は,ビューポート座標系を使います。円弧の中心は,ビューポート座標点 (x1, y1) と (x2, y2) で指定される境界矩形の中心です。円弧は,円弧の中心から (x3, y3) に伸ばした仮想線との交点から開始されます。円弧は,円弧の中心から逆時計回りに描画され,円弧の中心から (x4, y4) に伸ばした仮想線との交点で終わります。
PIE_W 関数は,ウィンドウ座標系を使います。円弧の中心は,ウィンドウ座標点 (wx1, wy1) と (wx2, wy2) で指定される境界矩形の中心です。円弧は,円弧の中心から (wx3, wy3) に伸ばした仮想線との交点から開始されます。円弧は,円弧の中心から逆時計回りに描画され,円弧の中心から (wx4, wy4) に伸ばした仮想線との交点で終わります。
i に $GFILLINTERIOR を指定することは,開始点としてパイの中心と境界色として現在の色 (SETCOLORRGB で設定) を使用する FLOODFILLRGB 関数を引き続き呼び出すことと等価です。境界色と異なる塗り潰し色を使いたい場合,$GFILLINTERIOR オプションは使いません。その代わり,パイを描画した後,SETCOLORRGB で現在の色を変更し,FLOODFILLRGB を呼び出します。塗り潰したい絵の内部点を FLOODFILLRGB に指定しなければなりません。GETARCINFO を呼び出すことによって,最後に描画したパイや円弧のこの点を得ることができます。
FLOODFILLRGB でパイを塗り潰す場合,パイの境界線は実線でなければなりません。線種は実線が基本設定で,SETLINESTYLE で変更することができます。
互換性
STANDARD GRAPHICS QUICKWIN GRAPHICS LIB
関連情報
ARC,ELLIPSE,FLOODFILLRGB,GETARCINFO,GRSTATUS,LINETO,POLYGON,RECTANGLE,SETCOLORRGB,SETFILLMASK,SETLINESTYLE
例
! QuickWin または Standard Graphics アプリケーションでビルドします。 USE DFLIB INTEGER(2) status, dummy INTEGER(2) x1, y1, x2, y2, x3, y3, x4, y4 x1 = 80; y1 = 50 x2 = 180; y2 = 150 x3 = 110; y3 = 80 x4 = 90; y4 = 180 status = SETCOLOR(INT2(4)) dummy = PIE( $GFILLINTERIOR, x1, y1, x2, y2, x3, y3, x4, y4) END
図:PIE と PIE_W を定義するための座標