%表題   概要
%
%履歴
%\Drireki{
%         11/11/26 辻野智紀 (html -> pdf)}
%        }
%
\section{概要} \label{graph.shade.abst}

\subsection{パターン番号} \label{graph.shade.abst.pattern}
トーンパターン番号には色の情報と, パターンの情報が両方含まれており, 
下位3桁がパターン番号, それより上位の桁は色を指定する. 
色を指定しない (3 桁の番号だけ指定) 場合は, 
フォアグラウンド (色番号 1) と解釈される. \\
パターン番号の最上位桁は, パターンの種類をあらわす. \\

\begin{quote}
\begin{tabular}{lp{10cm}}
0: & ドット \\
1: & 横線 \\
2: & 斜線 (右上がり) \\
3: & 縦線 \\
4: & 斜線 (左上がり) \\
5: & 格子 (縦横) \\
6: & 格子 (斜め) \\
\end{tabular}
\end{quote}

2 桁めは, ドットの大きさや斜線の太さを0から5の間で指定する. 
値が大きくなるにつれてドットは大きくなり斜線は太くなる. 
最下位桁はドットや斜線の密度を 0 から 5 の間で指定する. 
値が大きくなるにつれてドットや斜線の密度があがる. 
ただし 0 のときは何も描かれない. \\

\textbf{パターン番号として999を指定するとべたぬりとなる.} \\

カラーの端末やカラーのプリンターでは, 
色を指定したべた塗りによる塗りわけがしばしばおこなわれる. 
このプログラムをカラーがサポートされない環境で実行しても, 
それなりな見わけがつくようにドットによる塗りわけとして
表現するようなオプションも用意されている. \\

これらの組合せ以外の整数値はパターンが定義されていない. 
実際のパターンについてはトーンパターンテーブル(\ref{tone.tone})を参照のこと.


\subsection{色番号の読み替え} \label{graph.shade.abst.colornomber}
色を用いたべた塗り (下位 3 桁が 999 であるようなトーンパターン番号) による
塗りわけをおこなうとき, 
色番号をドットなどのパターン番号として読みかえることができる. 
内部変数 '{\tt ENABLE\_COLOR\_SUBSTITUTION}'が {\tt .TRUE.} のときは読みかえる;
 {\tt .FALSE.} のときは読みかえない (初期値は {\tt .FALSE.} ). 
ただし, 色を用いた塗りわけができないような装置では, 
'{\tt ENABLE\_COLOR\_SUBSTITUTION}' が {\tt .FALSE.} と設定されていても, 
パターン番号による読みかえをおこなおうとする.



\subsection{ソフトフィルとハードフィル} \label{graph.shade.abst.soft_hard}
多角形閉領域のぬりつぶし (トーン) を出力する際, 
出力装置の能力に応じて, ハードフィルまたはソフトフィルを切替える. 
ハードフィルでは実際にデバイスに依存した「領域のぬりつぶし」を行なうが, 
ソフトフィルではそこにドットや線分を描くことによって「ぬりつぶし」を実現する. \\

内部変数 '{\tt ENABLE\_SOFTFILL}' が {\tt .true.} のときはソフトフィルをおこなう; 
{\tt .false.} のときはハードフィルをおこなう (初期値は {\tt .false.} ). 
ただし, ハードフィルを指定してもその能力がない場合はソフトフィルとなる. \\

すでに描かれた図形の上にソフトフィルをおこなってもトーンパターンが上書きされるだけで, 
それまでに描かれた図形が (べた塗りをしない限り) 消えてしまうことはない. 
しかしながら, 出力装置によってはハードフィルによるぬりわけによって先に描かれた図形が消えてしまうことがあるので, 
ほかの図形出力と一緒にトーンを用いるときは 描く順番に注意すること.



\subsection{頂点座標の指定方法} \label{graph.shade.abst.top_grid}
塗りつぶす多角形を定義する頂点の座標 {\tt (PX(i), PY(i)) (i =1,N)} に関しては, 
{\tt (PX(1), PY(1))} と {\tt (PX(N), PY(N))} は同一な点である必要はない. 
つまり, {\tt (PX(i), PY(i))} と {\tt (PX(i+1), PY(i+1)) (i =1,N-1)} および
 {\tt (PX(N), PY(N))} と {\tt (PX(1), PY(1))} を結んだ閉領域をぬりつぶす.



\subsection{制約} \label{graph.shade.abst.constrain}
現在サポートされているサブルーチン群は, 
内部的に確保している作業領域の制約から座標値を与える配列の長さ
 {\tt N} は 256 以下でなければならない.




