グラフィックス・サブルーチン:グラフィックス出力を画面の一部に限定します。
モジュール:USE DFLIB
形式
CALL SETCLIPRGN (x1, y1, x2, x2)
x1, y1
(入力) INTEGER(2)。クリッピング領域の左上隅の物理座標。
x2, y2
(入力) INTEGER(2)。クリッピング領域の右下隅の物理座標。
SETCLIPRGN 関数は,グラフィックス出力,フォントを基本としたテキスト出力の表示を画面の指定した領域 (クリッピング領域) 内に限定します。物理座標 (x1, y1) と (x2, y2) は,クリッピング領域を定義する矩形の左上隅と右下隅です。SETCLIPRGN 関数は,ビューポート座標系を変更しません。これは,単にグラフィックス出力の画面でのマスクにすぎません。
SETCLIPRGN は,グラフィックス出力と OUTGTEXT のようなフォントを基本としたテキスト出力にのみ影響します。OUTTEXT を使ったテキスト出力の画面のマスクには,SETTEXTWINDOW を使用します。
互換性
STANDARD GRAPHICS QUICKWIN GRAPHICS LIB
関連情報
GETPHYSCOORD,GRSTATUS,SETTEXTWINDOW,SETVIEWORG,SETVIEWPORT,SETWINDOW
例
このプログラムは,以下に示すように,クリッピング領域内に一部がある楕円を描画しています。
! QuickWin または Standard Graphics アプリケーションでビルドします。 USE DFLIB INTEGER(2) status, x1, y1, x2, y2 INTEGER(4) oldcolor x1 = 10; y1 = 50 x2 = 170; y2 = 150 ! 楕円全体を白で描画します。 status = ELLIPSE($GBORDER, x1, y1, x2, y2) oldcolor = SETCOLORRGB(#FF0000) ! 青色 WRITE(*,*) "Hit enter" READ(*,*) CALL CLEARSCREEN($GCLEARSCREEN) ! 画面をクリア CALL SETCLIPRGN( INT2(0), INT2(0), INT2(150), INT2(125)) ! クリッピング領域内の楕円の一部のみが描画されます。 status = ELLIPSE($GBORDER, x1, y1, x2, y2) END
図:プログラム SETCLIP.FOR の出力