ここにあるライブラリは,小波秀雄が個人的に作って利用しているもの がほとんどで,それ以外に Adobe 社の公開資料である Blue Book に掲載されたものがひとつだけあります。 いずれも著作権は法律の規定に従って小波またはAdobe社にあります。 著作者を詐称しないことだけが,使用に際しての 条件です。それ以外の一切の制限や条件はなく, 自由に使うことが出来ます。
利用,および解読には Postscript プログラミングメモ などを参考にしてください。
線分,矩形,平行四辺形(上下辺水平),方眼を描く — lines.pslib
ライブラリ名次の4つのファイルを同じディレクトリにダウンロードして, gsview で libtest.ps を表示させてください。
libtest.ps を編集するといろいろな描画ができます。 また,ライブラリそのものをいじりたければ lines.pslib, arrows.pslib, string.pslig を 編集しなおしてください。
これらのライブラリを利用するには,次のようなファイルを作成します。
%!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 300 270BoundingBOX の数値は画面の広さの指定です。72 で 1 inch(25.45mm) になります。
(lines.pslib) runこれで lines.pslibで定義されている 手続きを利用することができます。
(lines.pslib) run grid -50 -50 400 400 10 grid
カレントポイントに任意のサイズで英数字,シンボル,日本語の文字列を出力します。 左揃えと中央揃えとがあります。
Shift-JIS 用です。EUC で使うときには,次のように変更してください。
gothic → egothic cgothic → cegothic
(string.pslib) run x y moveto (文字列) 12 mincho
line(線分), box/rect(矩形), rbox/rrect (矩形,左下隅の座標と幅&高さ), cbox/crect (矩形,中心の座標と幅&高さ), parallelo(平行四辺形), grid(方眼), path(複数の点をつなぐ),bendoto(2つの直線を丸めた交点でつなぐ)
Grid x1 y1 x2 y2 sep grid
Line x1 y1 x2 y2 line
Path connected with points x1 y1 x2 y2 x3 y3 ... x_n y_n path stroke
Polygon from points x1 y1 x2 y2 x3 y3 ... x_n y_n path closepath stroke
Filled polygon from points x1 y1 x2 y2 x3 y3 ... x_n y_n path closepath fill
Box x1 y1 x2 y2 box fill/stroke
Box with width and height x1 y1 w h rbox fill/stroke
Box with center coordinates, width and height cx1 cy1 w h cbox fill/stroke
Round-corner rectangle x1 y1 x2 y2 corner_size roundrect
Parallelo x1 y1 x2 y2 dx parallelo fill/stroke
Circle x1 y1 rad circle fill/stroke
Ellipse x1 y1 a b ellipse fill/stroke
Bent curve connecing two lines x1 y1 x2 y2 x3 y3 x4 y4 r bendto % r: 0 - 1
Rectangular lattice x1 y1 x2 y2 width lattice
(lines.pslib) run x1 y1 x2 y2 line x1 y1 x2 y2 sep grid x1 y1 x2 y2 box fill/stroke x1 y1 x2 y2 dx dy parallelo fill/stroke
下の平行四辺形は次のような記述で描画できます(u は適当な単位)。
2 u 2 u 10 u 7 u 2 u 1 u parallelo stroke
4つの点を与えると,交点を丸めてつなぎます。 丸めの大きさは 4つめの引数(ここでは 0.2)で調節してください。
p1 p2 p3 p4 0.2 bendto stroke
まっすぐな矢印と, 円弧形の矢印を描画できます。 どの矢印も,鏃が片方に付いたものと,両方に付いたものとがあります。
これらは 小波が作ったものが大半ですが,一部に Blue Book (Adobe 社公開資料) 所載のものが入っています。
arrow (まっすぐな矢印 from "Blue Book"), arcarrow(円弧単方向), arcarrowb(両方向), curvearrow(Bezier 曲線の矢印単方向), curvearrowb(Bezier 曲線の矢印両方向),
イタリックで書かれた記号 x_from, dx などは座標などの数値を表すパラメータです.
stemthick : 軸の太さ headthick : 鏃の太さ headlength: 鏃の長さ
x_from, y_from: 根元 x_to, y_to : 先端
x_from y_from x_to y_to stemthick headthick headlength arrow fill/stroke両矢のタイプ
x_from y_from x_to y_to stemthick headthick headlength arrowb fill/strokeサンプルファイル(下は描画結果)
cx, cy: 円弧の中心の座標 radius: 円弧の半径 from_angle: 開始角 to_angle: 終了角片矢のタイプ
cx cy radius from_angle to_angle stemthick headthick headlength arcarrow fill/stroke両矢のタイプ
cx cy radius from_angle to_angle stemthick headthick headlength arcarrowb fill/strokeサンプルファイル(下はこれによる描画結果)
x0 y0 x1 y1 x2 y2 x3 y3 curvearrow (注意!この矢印は fill 型のものしかない)両矢のタイプ
x0 y0 x1 y1 x2 y2 x3 y3 curvearrowb (注意!この矢印は fill 型のものしかない)サンプルファイル(下はこれによる描画の結果)
図中の p0 等は x0 y0 等の座標の組