【円弧-11】円の移動2

円を小さくしながら、横方向に移動します。
円の移動量dx、円の半径rが整数なのは32行めの繰り返し回数が整数でないとエラーとなるからです。
通常のプログラムではエラー処理、アラートの表示などが必要になるのでしょうが、それはPostScriptではできません。コメントに注意事項を入れておけばOKです。

参考:X1ターボ/X1シリーズ・プログラム200選  特選グラフィックスデザイン/畠中兼司・北尾和信共著

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 720 720
%%HiResBoundingBox: 0 0 720 720
%%CropBox: 0 0 720 720
%%Title:円の移動
%%Creator:Studio Fruit Jam / Toyokazu Nishi
%%Copyright:Studio Fruit Jam / Toyokazu Nishi
%%CreationDate:2018年7月19日 木曜日午後5:03:12
% 参考:X1ターボ/X1シリーズ・プログラム200選
% 特選グラフィックスデザイン 畠中兼司・北尾和信共著

% ================ 座標変換 ================
360 360 translate % 座標の原点を中央に移動
% ================ 背景 =================
/DeviceRGB setcolorspace % カラースペース設定
.917 .917 .863 setrgbcolor % 背景カラー設定(変更可)
-360 360 720 -720 rectfill % 背景描画

% ====================== 初期値
/x 0 def /y 0 def % 円の初期位置
/r 340 def % 円の半径(整数のみ)(変更可)
/e { 0 360 } def % 円の開始角度と終了角度径
/dx 10 def % 円の移動量,減衰量(0<dx /sw 1 def % 色変更スイッチ
/c1 { .7 .322 .976 sethsbcolor } def % カラー1(変更可)
/c2 { .217 .315 .931 sethsbcolor } def % カラー2(変更可)

% ================================================
% メイン
% ================================================
newpath % パスの初期化
r dx idiv { % 円の半径を移動量で割った数だけ{ }内を繰り返す
x y r e arc % 円を引く
/r r dx sub def % 円の半径を次第に小さくする
/x x dx add def % 円を移動する
% swが1の時カラー1で塗る。それ以外はカラー2で塗る
sw 1 eq { c1 } { c2 } ifelse fill
/sw sw neg def % swを反転する
} repeat
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次