So-net無料ブログ作成

円を並べてパターンを作ってみよう3 [PostScript]

パターン


円パターン配列カラー2.png
・円を並べてパターンを作ってみよう2に3行コードを追加して、円を大きくしたり小さくしたりします。
追加するのは
/dt 1 def % 円の半径を増減させる値
/r r dt add def % 円の半径に増減値を足す
r 10 gt r 3 lt or { /dt dt neg def } if % 円の半径が10以上または3以下なら増減値の符号を反転させます。
円の半径が10以上になったら、dtを-dtにしてrから引いていくことで円が小さくなります。
また半径が3以下になったら-dtをdtにして次第に円が大きくなっていきます。
これが繰り返されていきます。

【サンプルコード】
%!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 %%Title:円のパターン /r 10 def % 円の半径 /dt 1 def % 増減値 /step 20 def % 円と円の間隔 /h 120 r add def % 高さ(パターンが端で不完全にならないよう円の半径分足す) /w 120 r add def % 幅(パターンが端で不完全にならないよう円の半径分足す) % 幅・高さを間隔で割って余りをkx、kyに入れる(パターンを天地左右対象に囲みに入れるため) /kx w step mod def /ky h step mod def /col [ [ 0.444 1 0.81 ] [ 0.541 0.83 .79 ] [ 0.583 0.5 0.63 ] [ 0.025 0.56 1 ] ] def % カラー配列を作る 120 120 translate % 座標の原点を中央に移動 newpath % パスの初期化 w neg step w { % -120から30づつ増やし120になるまで { }を繰り返す /dx exch def % 制御変数をdxに入れる h neg step h { % -120から30づつ増やし120になるまで { }を繰り返す /dy exch def % 制御変数をdyに入れる % 0〜3のランダムな値(rand 4 mod)で配列colからカラー配列を %取り出し(get)、スタックに置き(aload)、 % オペランドは削除(pop)してカラー設定する(setrgbcolor) col rand 4 mod get aload pop setrgbcolor % dx,dyが中心の半径10の円を描く(kx、kyの余りを足して位置の調整) dx kx add dy ky add r 0 360 arc stroke /r r dt add def % 円の半径に増減値を足す % 半径が10以上または3以下なら増減値の符号を反転する r 10 gt r 3 lt or { /dt dt neg def } if } for } for

【オペレータの説明】
論理1 論理2 and
論理積を求めます
(例)
true true and → true
true false and → false
false true and → false
false false and → false

論理1 not
論理否定を求めます
(例)
true not → false
false not → true

論理1 論理2 or
論理和を求めます
(例)
true true or → true
true false or → true
false true or → true
false false or → false

論理1 論理2 xor
排他的論理和を求めます
(例)
true true xor → false
true false xor → true
false true xor → true
false false xor → false


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

nice! 0

コメント 0

コメントを書く

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

トラックバック 0

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