PSPLOT(線画 PostScript出力)

psopn, plots, plote, pscls, epsbox | plot, scisor, factor, where | newpen, penatr | wrect, wpolyg, wcirc

概 要
 PSPLOT は,PostScriptプリンタへの線画出力を行うためのルーチン群であり,
各ルーチンの概略機能は,次のとおりである.
     psopn : 本ルーチン群の初期化       factor: 描画拡大率指定
     plots : 1ページ出力の開始          penatr: ペン属性(色/線幅等)指定
     plote : 1ページ出力の終了          newpen: ペン番号選択
     pscls : 本ルーチン群の終了化       where : ペンの現在位置取得
     epsbox : BoundingBoxの指定         wrect : 矩形描画
     plot  : 線分描画またはペンの移動   wpolyg: 多角形描画
     scisor: 描画範囲外切取り指定       wcirc : 円/円弧描画
論理的な呼出し手順としては,全体として psopn で始まり pscls で終ること,その中
に,plots で始まり plote で終るページ出力が1~複数回あること,その他のルーチン
は一般に,さらにその内側に記述されること が必要である.但し,epsbox は psopn 
よりも前に呼び出す.

PSOPN, PLOTS, PLOTE, PSCLS, EPSBOX
1.機 能
  ・psopn ルーチンは,PostScript図化データ出力ファイルの初期設定を行う.
  ・plots ルーチンは,線画出力ページの初期化と初期座標原点の設定を行う.
  ・plote ルーチンは,ページ出力の終了処理を行う.
  ・pscls ルーチンは,PostScript図化データ出力の終了処理を行う.
  ・epsbox ルーチンは,EPS出力を想定してBoundingBox値を指定する.

2.呼出し手順と引数

      call psopn(pfile, sheet)
  pfile   [char]  PostScript図化データの出力ファイル名
  sheet   [char]  使用用紙の指定(3文字で,第1文字は A/B のいずれか,第2文字は
                  4/3/2/1/0 のいずれか,第3文字は P/L のいずれかとする.
                  EPS出力指定のため,第4文字として E の付加が許される.)
        pfile に NULL 文字列を指定すると,出力ファイルは作成されず,PostScript
        図化データを標準出力へ書き出す.

      call plots(xo, yo)
  xo, yo  [float] 初期座標原点位置の指定(cm単位)

      call plote()
      call pscls()

      call epsbox(obbx, obby, sbbx, sbby)
  obbx, obby  [float] BoundingBox原点(左下)の座標値(cm単位)
  sbbx, sbby  [float] BoundingBoxの幅と高さ(cm単位)


PLOT, SCISOR, FACTOR, WHERE
1.機 能
  ・plot ルーチンは,ペン移動・座標原点の再設定をモードの指定に従って行う.
  ・scisor ルーチンは,描画の有効範囲を指定し,これ以後のその外側への描画を
     シザリングする.(wcirc, wrect に対しては効力をもたない.)
  ・factor ルーチンは,全ての線画出力に対して拡大縮小を行う倍率係数を与える.
  ・where ルーチンは,その時点のペンの位置座標と倍率係数を知る.

2.呼出し手順と引数

      call plot(xp, yp, md)
  xp, yp  [float] ペン移動先の座標値(cm単位)
  md      [int]   モードの指定
                  (md が ±2 のとき (xp,yp) まで線を描き,
                    md が負のとき ペン移動先を原点に再設定する.)

      call scisor(xl, yl, xsz, ysz)
  xl, yl  [float] 描画の有効範囲の左下隅の座標値(cm単位)
  xsz     [float] 描画の有効範囲の横幅(cm単位,正の値で指定する.)
  ysz     [float] 描画の有効範囲の高さ(cm単位,正の値で指定する.)
                  但し,xsz=ysz=0. のときは,シザリングを解除する.

      call factor(fac)
  fac     [float] 設定する倍率係数

      call where(xw, wy, wfac)
  wx, wy  [float] ペンの位置座標の値を受け取る変数
  wfac    [float] 倍率係数の値を受け取る変数

NEWPEN, PENATR
1.機 能
  ・newpen ルーチンは,作画に使用するペンを選択する.
  ・penatr ルーチンは,ペン番号に対する線種と線幅およびその色を定義する.
     本ルーチンで定義する前のデフォールトとして,ペン番号 1~4 は 線幅が
     0.01/0.03/0.06/0.10 cm の黒の実線,ペン番号 5~8 は 1~4 と同じ
     線幅で黒の破線に定義されている.

2.呼出し手順と引数

      call newpen(npen)
  npen    [int]   設定するペン番号(1 ~ 8)

      call penatr(jpen, icol, ityp, thick)
  jpen    [int]   定義するペンの番号(1 ~ 8)
  icol    [int]   線の色を規定する数値.(0~16777215 の値で 24ビットカラーの
                  内の1色を,-255~0 の値で白黒の濃淡レベルを示す.カラーの色
                  は(上位から)RGB 各 8ビット 計24ビットの正の値で表現し,
                  白黒の場合は 8ビットの輝度値を負の値にして表現する.
                   [ 0 が黒を意味し,16777215 と -255 が白となる.]
  ityp    [int]   線の種類(0:実線/1:破線/2:点線/3:鎖線 のいずれか)
  thick   [float] 線の太さ(cm単位)
        一時的な色・線種・線幅の定義のために jpen=0 を使用することができる.
        そのとき,内部的なペン番号は 0 とみなされ,ペン番号が再設定されるまで
        有効となる.

WRECT, WPOLYG, WCIRC
1.機 能
  ・wrect ルーチンでは,基点の座標と横幅・高さを与えて矩形を描く.
  ・wpolyg ルーチンでは,頂点の座標を与えて多角形を描く.
  ・wcirc ルーチンでは,中心の座標と半径,始点・終点の角度を与えて
     反時計回りの円または円弧を描く.

2.呼出し手順と引数

      call wrect(xl, yl, xsz, ysz)
  xl, yl  [float] 基点(xsz>0, ysz>0 なら左下隅)の座標値(cm単位)
  xsz     [float] 矩形の横幅(cm単位,負なら基点の左側に矩形が描かれる.)
  ysz     [float] 矩形の高さ(cm単位,負なら基点の下側に矩形が描かれる.)

      call wpolyg(xm, ym, npt, inc)
  xm, ym  [float] 座標データが格納されている配列(その先頭要素位置)
  npt     [int]   座標データ点の個数(3以上の値でなければならない)
  inc     [int]   座標データ配列から各座標データを取り出す間隔
                  (正の値でなければならない)
        多角形は,1番目の(頂点)座標から 2番目の座標へ,2番目の座標から 3番目
        へ,3番目から 4番目へと順次結ばれ,(npt)番目の頂点の次は 1番目の頂点へ
        結ばれる.

      call wcirc(xc, yc, ra, a1, a2)
  xc, yc  [float] 中心点の座標値(cm単位)
  ra      [float] 半径(cm単位)
  a1, a2  [float] 始点・終点の角度(度単位,X軸方向から反時計回りに測る)
                  (a1>a2 のときは 何も描かれない.)