So-net無料ブログ作成
検索選択

方眼を描いてみよう [PostScript]

直線を描く PART2



20-05水平線と垂直線.png

方眼を描いてみましょう。

以前に描いた複数の水平線と垂直線を合わせればできます。



【サンプルコード】
%!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 120 120 translate % 座標の原点を中央に移動 newpath % パスの初期化 /x 100 def % x座標 -100 20 100 { % -100から20づつ増やし100になるまで { } 内を繰り返す /y exch def % y(座標)へ制御変数を入れる x neg y moveto % 始点へ移動 x 2 mul 0 rlineto % 始点と終点の間にパスを引く } for /y 100 def % y座標を100とする -100 20 100 { % -100から20づつ増やし100になるまで { } 内を繰り返す /x exch def % x(座標)へ制御変数を入れる x y moveto % 始点へ移動 0 y 2 mul rlineto % 始点と終点の間にパスを引く } for stroke % 線を描画

これはこれでもいいですが、同じ処理が繰り返されています。もっと簡潔にしてみましょう。

【サンプルコード】
%!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 /x 100 def % x座標を100とする /y 100 def % y座標を100とする /h_line { % 水平線を引くプロシージャ x neg pos moveto x 2 mul 0 rlineto } def /v_line { % 垂直線を引くプロシージャ pos y moveto 0 y 2 mul neg rlineto } def 120 120 translate % 座標の原点を中央に移動 newpath % パスの初期化 -100 20 100 { % -100から20づつ増やし100になるまで { } 内を繰り返す /pos exch def % 制御変数をposに入れる h_line % h_lineプロシージャを呼び出す v_line % v_lineプロシージャを呼び出す } for stroke % 線を描画

さらに簡潔にしてみましょう。

【サンプルコード】
%!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 /x 100 def % x座標を100とする /y 100 def % y座標を100とする /line { % 方眼を引くプロシージャ x neg pos moveto % 水平線を引く x 2 mul 0 rlineto pos y moveto% 垂直線を引く 0 y 2 mul neg rlineto } def 120 120 translate % 座標の原点を中央に移動 newpath % パスの初期化 -100 20 100 { % -100から20づつ増やし100になるまで { } 内を繰り返す /pos exch def % 制御変数をposに入れる line % lineプロシージャを呼び出す } for stroke % 線を描画


【オペレータの説明】
/キー {
   処理
   } def
複数の処理を一つにまとめるとプログラムが簡潔になり、メンテしやすくなります。これを手続き(プロシージャ)と言います。
例)/heikin { add 2 div } def % 2つの数値の平均を求める
30 70 heikin
数値 1 数値2 add数値1と数値2を足した値を返す
数値1 数値2 div数値1を数値2で割った値を返す

タグ:PostScript
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:アート

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました