PIE, PIE_W

グラフィックス関数:現在のグラフィックス色でパイ形形状を描画します。

モジュール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 つを使うことができます。

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 で変更することができます。


注意:ここで説明している PIE ルーチンは,QuickWin ルーチンです。DFWIN モジュールをインクルードして Win32 SDK バージョンの Pie ルーチンを使用する場合,MSFWIN$Pie という名前でルーチンを指定する必要があります。詳細は,「特定の QuickWin と Win32 グラフィックス・ルーチンの特別な名付け規約」を参照してください。

互換性

STANDARD GRAPHICS QUICKWIN GRAPHICS LIB

関連情報

ARCELLIPSEFLOODFILLRGBGETARCINFOGRSTATUSLINETOPOLYGONRECTANGLESETCOLORRGBSETFILLMASKSETLINESTYLE

	! 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

図:PIEPIE_W を定義するための座標