%表題   GRPH1 基本グラフィックルーチンライブラリ
%
%履歴
%\Drireki{
%         90/03/22 塩谷雅人
%         91/09/05 林祥介
%         91/12/12 塩谷雅人
%         92/04/22 林祥介   (4.1版)
%         94/03/12 塩谷雅人
%        }
%
\section{サブルーチンの説明 : ポリマーカープリミティブ}
\label{sgpack.pmark}

マーカー列の図形出力(polymarker primitive)に関するサブルーチン群.
% 使用例については\ref{sg.sgpmu}節参照.

\vspace{1em}
\GLPGETSET が管理する内部変数{\tt 'LMISS'}を{\tt .TRUE.}にすると
欠損値処理をおこなう.
つまり欠損値の点にはマーカーを打たない.

\vspace{1em}
また, 内部変数{\tt 'NPMSKIP'}(\ref{sgpack.cntl.sgpget}節参照)を
変更することによって何点かに1個の割合で
マーカーを描くこともできる.

%------------------------------------------------------------------------------
\subsection{SGPMZU/SGPMZV/SGPMZR}
%\label{sgpack.pmark.sgpmzu}
\begin{enumerate}
  \item 機能
  \begin{quote}
        U/V/R座標系でマーカー列を描く. 属性も同時に指定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL SGPMZU(N,UPX,UPY,ITYPE,INDEX,RSIZE)} \\
    {\tt CALL SGPMZV(N,VPX,VPY,ITYPE,INDEX,RSIZE)} \\
    {\tt CALL SGPMZR(N,RPX,RPY,ITYPE,INDEX,RSIZE)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt N} & {\tt (I)} & 配列{\tt UPX}, {\tt UPY}のなど長さ. \\
      {\tt UPX}, {\tt UPY} & {\tt (R)} & 長さ{\tt N}の配列.
        マーカーを打つ点のU座標系における(X, Y)座標の値を与える. \\
      {\tt VPX}, {\tt VPY} & {\tt (R)} & 長さ{\tt N}の配列.
        マーカーを打つ点のV座標系における(X, Y)座標の値を与える. \\
      {\tt RPX}, {\tt RPY} & {\tt (R)} & 長さ{\tt N}の配列.
        マーカーを打つ点のR座標系における(X, Y)座標の値を与える. \\
      {\tt ITYPE} & {\tt (I)} & マーカータイプ. {\tt SGSPMT}参照. \\
      {\tt INDEX} & {\tt (I)} & マーカーのラインインデクス.
				{\tt SGSPMI}参照. \\
      {\tt RSIZE} & {\tt (R)} & マーカーのサイズ. {\tt SGSPMS}参照.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt N}は1以上でなければならない.
    \item ここで指定した{\tt ITYPE}, {\tt INDEX}, {\tt RSIZE}は,
      {\tt SGPMU}, {\tt SGPMV}, {\tt SGPMR}が参照する
      {\tt ITYPE}, {\tt INDEX}, {\tt RSIZE}を変更しない.
  \end{enumerate}
\end{enumerate}

%------------------------------------------------------------------------------
\subsection{SGPMXU/SGPMXV/SGPMXR}
%\label{sgpack.pmark.sgpmxu}
\begin{enumerate}
  \item 機能
  \begin{quote}
        U/V/R座標系でマーカー列を描く. 属性も同時に指定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL SGPMXU(N,UPX,UPY,ITYPE,INDEX,ICOLOR,RSIZE)} \\
    {\tt CALL SGPMXV(N,VPX,VPY,ITYPE,INDEX,ICOLOR,RSIZE)} \\
    {\tt CALL SGPMXR(N,RPX,RPY,ITYPE,INDEX,ICOLOR,RSIZE)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt N} & {\tt (I)} & 配列{\tt UPX}, {\tt UPY}のなど長さ. \\
      {\tt UPX}, {\tt UPY} & {\tt (R)} & 長さ{\tt N}の配列.
        マーカーを打つ点のU座標系における(X, Y)座標の値を与える. \\
      {\tt VPX}, {\tt VPY} & {\tt (R)} & 長さ{\tt N}の配列.
        マーカーを打つ点のV座標系における(X, Y)座標の値を与える. \\
      {\tt RPX}, {\tt RPY} & {\tt (R)} & 長さ{\tt N}の配列.
        マーカーを打つ点のR座標系における(X, Y)座標の値を与える. \\
      {\tt ITYPE} & {\tt (I)} & マーカータイプ. {\tt SGSPMT}参照. \\
      {\tt INDEX} & {\tt (I)} & マーカーのラインインデクス.
				{\tt SGSPMI}参照. \\
      {\tt ICOLOR} & {\tt (I)} & ICOLOR型の色. {\tt ISGRGB}参照.\\
      {\tt RSIZE} & {\tt (R)} & マーカーのサイズ. {\tt SGSPMS}参照.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt N}は1以上でなければならない.
    \item ここで指定した{\tt ITYPE}, {\tt INDEX}, {\tt RSIZE}は,
      {\tt SGPMU}, {\tt SGPMV}, {\tt SGPMR}が参照する
      {\tt ITYPE}, {\tt INDEX}, {\tt RSIZE}を変更しない.
  \end{enumerate}
\end{enumerate}

%------------------------------------------------------------------------------
\subsection{SGPMU/SGPMV/SGPMR}
%\label{sgpack.pmark.sgpmu}
\begin{enumerate}
  \item 機能
  \begin{quote}
    U/V/R座標系でマーカー列を描く.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL SGPMU(N,UPX,UPY)} \\
    {\tt CALL SGPMV(N,VPX,VPY)} \\
    {\tt CALL SGPMR(N,RPX,RPY)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt N} & {\tt (I)} & 配列{\tt UPX}, {\tt UPY}のなど長さ. \\
      {\tt UPX}, {\tt UPY} & {\tt (R)} & 長さ{\tt N}の配列.
        マーカーを打つ点のU座標系における(X, Y)座標の値を与える. \\
      {\tt VPX}, {\tt VPY} & {\tt (R)} & 長さ{\tt N}の配列.
        マーカーを打つ点のV座標系における(X, Y)座標の値を与える. \\
      {\tt RPX}, {\tt RPY} & {\tt (R)} & 長さ{\tt N}の配列.
        マーカーを打つ点のR座標系における(X, Y)座標の値を与える. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt N}は1以上でなければならない.
    \item 描くマーカーの属性は
      {\tt SGSPMT}, {\tt SGSPMI}, {\tt SGSPMS}で設定する.
  \end{enumerate}
\end{enumerate}

%------------------------------------------------------------------------------
\subsection{SGSPMT}
%\label{sgpack.pmark.sgspmt}
\begin{enumerate}
  \item 機能
  \begin{quote}
    {\tt SGPMU}, {\tt SGPMV}, {\tt SGPMR}で描くマーカータイプを設定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL SGSPMT(ITYPE)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt ITYPE} & {\tt (I)} & マーカータイプ(初期値は1).
        {\tt ITYPE}が1のとき'$\cdot$', 2のとき'$+$', 3のとき'$\ast$',
        4のとき'$\circ$'のように,
        DCL文字番号(\ref{sgpack.csgi}節および
        \ref{append.table.sgfont1}, \ref{append.table.sgfont2}節の
        フォントテーブル参照)に対応する文字を描く.
        たとえば{\tt ITYPE} = 152のとき, '$\alpha $'を描く.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt ITYPE}は0以外でなければならない.
      ただし{\tt ITYPE}が0のとき, メッセージは出力されるがなにもしない.
    \item {\tt ITYPE}の妥当性はこのルーチンでチェックされず,
      {\tt SGPMU}, {\tt SGPMV}, {\tt SGPMR}を呼んだときにチェックされる.
    \item 現在設定されているマーカータイプは
      \begin{quote}
        {\tt CALL SGQPMT(ITYPE)}
      \end{quote}
      によって参照できる.
  \end{enumerate}
\end{enumerate}

%------------------------------------------------------------------------------
\subsection{SGSPMI}
%\label{sgpack.pmark.sgspmi}
\begin{enumerate}
  \item 機能
  \begin{quote}
    {\tt SGPMU}, {\tt SGPMV}, {\tt SGPMR}で描くマーカーの
    ラインインデクスを設定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL SGSPMI(INDEX)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt INDEX} & {\tt (I)} & マーカーを描く線のラインインデクス
        (\ref{gaiyou.outp}節参照;初期値は1).
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt INDEX}は1以上でなければならない.
      ただし{\tt INDEX}が0のとき, メッセージは出力されるがなにもしない.
    \item {\tt INDEX}の妥当性はこのルーチンでチェックされず,
      {\tt SGPMU}, {\tt SGPMV}, {\tt SGPMR}を呼んだときにチェックされる.
    \item 現在設定されているマーカーのラインインデクスは
      \begin{quote}
        {\tt CALL SGQPMI(INDEX)}
      \end{quote}
      によって参照できる.
  \end{enumerate}
\end{enumerate}

%------------------------------------------------------------------------------
\subsection{SGSPMS}
%\label{sgpack.pmark.sgspms}
\begin{enumerate}
  \item 機能
  \begin{quote}
    {\tt SGPMU}, {\tt SGPMV}, {\tt SGPMR}で描くマーカーの大きさを設定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL SGSPMS(RSIZE)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt RSIZE} & {\tt (R)} & マーカーの大きさをV-座標系における
        単位で指定する(初期値は0.01).
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item {\tt RSIZE}は0より大きくなければならない.
      ただし{\tt RSIZE}が0のとき, メッセージは出力されるがなにもしない.
    \item {\tt RSIZE}の妥当性はこのルーチンでチェックされず,
      {\tt SGPMU}, {\tt SGPMV}, {\tt SGPMR}を呼んだときにチェックされる.
    \item 現在設定されているマーカーの大きさは
      \begin{quote}
        {\tt CALL SGQPMS(RSIZE)}
      \end{quote}
      によって参照できる.
  \end{enumerate}
\end{enumerate}

\newpage
