%表題   GRPH2 図形処理上位パッケージ
%
%履歴
%\Drireki{
%         92/01/21 林祥介
%         92/04/22 林祥介   (4.1版)
%         95/04/19 塩谷雅人
%        }
%
%  \Dchapter{使用例 : 初期化制御ルーチン(GRPACK)}
\Dchapterhead
\label{grpack}

\section{概要}

GRPACKはGRPH2の各種パッケージを使って新しい図を描くとき,
これらのパッケージを初期化したり,
変換関数に関するパラメータを(実行時オプションの介入を許して)
設定するものである.
\vspace{1em}

GRPACK は以下のように, 基本的に GRPH1 の「コントロール」および
「正規化変換」に関するルーチンに相当するものを用意している
(対応する GRPH1/SGPACK のルーチン名を括弧内に示す).

  \begin{quote}
  \begin{tabular}{lp{10cm}}
    {\tt GROPN  (SGOPN) } & 出力装置のオープン. \\
    {\tt GRFRM  (SGFRM) } & フレームの設定. \\
    {\tt GRFIG}           & 新たな図の設定. \\
    {\tt GRCLS  (SGCLS) } & 出力装置のクローズ.
  \end{tabular}
  \end{quote}

  \begin{quote}
  \begin{tabular}{lp{10cm}}
    {\tt GRSVPT (SGSVPT)} & ビューポートの設定. \\
    {\tt GRSWND (SGSWND)} & ウインドウの設定. \\
    {\tt GRSSIM (SGSSIM)} & 相似変換の設定. \\
    {\tt GRSMPL (SGSMPL)} & 地図投影の極の設定. \\
    {\tt GRSTRN (SGSTRN)} & 変換関数の番号による設定.\\
%   {\tt GRSTRF (SGSTRF)} & 変換関数(透視変換を含む)の確定.
  \end{tabular}
  \end{quote}
  \vspace{1em}

{\tt SGOPN} などは電脳ライブラリの「下克上禁止令」により
GRPH2のルーチンを初期化できない.
しかし, GRPH2のサブパッケージの中には, 改ページ等のタイミングで
初期化が必要なものがある (UZPACK, USPACK 等;
初期化動作としては, GRPH2 でのサブパッケージが自動的に決める
可能性のあるパラメタに, 「未定義」の値を代入したりする).
GRPACK はこれらのサブパッケージを初期化するとともに，
内部で対応するSGPACKのルーチンを呼ぶ．
したがって, GRPACKを使って改ページなどをすれば,
そのたびに GRPH2 のライブラリの初期化ルーチンを呼ぶ必要はない.
\vspace{1em}

さらに GRPACK の各ルーチンが設定するパラメータについては,
実行時オプションの介入が可能である．
たとえば {\tt SGOPN} に相当する {\tt GROPN} というルーチンを使うと,
指定するワークステーション番号は実行時オプションによって
変更できる.
\vspace{1em}

また, GRPACKはGRPH1より高機能なGRPH2のライブラリを使うことを
前提にしているので,
{\tt GROPN}の中で{\tt SGLSET}を呼んで内部変数{\tt 'LCNTL'}を
{\tt .TRUE.}とし, 上つき下つきなどの制御文字を有効にしている
({\tt 'LCNTL'}の省略値は {\tt .FALSE.}である).
\vspace{1em}

\section{使用例}

以下の例では, まず, {\tt GROPN}, {\tt GRFRM}, {\tt GRFIG} など
コントロールルーチンの役割を認識して欲しい.
さらに, 実行時オプションの指定が可能な環境では(たとえば, コマンドライ
ン引数によって実行時オプションの指定が可能な環境では),

\begin{verbatim}
    > grpk01 -sg:iws=-1 -sg:ifont=2 -sg:vxmin=0.5
\end{verbatim}

などとして, その効果を試してもらいたい.

\begin{center}
\Depsf[10cm]{grpack/grpk01_0001.eps}\\
{\bf grpk01.f:page1}\\
\end{center}

\begin{center}
\Depsf[10cm]{grpack/grpk01_0002.eps}\\
{\bf grpk01.f:page2}\\
\end{center}

\pagebreak
\Dproginput{grpack/grpk01.f}
