左右から円を次第に大きくしていきます。
k,tはそれぞれ円のx座標・半径となります。
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
39 %!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 720 720
%%HiResBoundingBox: 0 0 720 720
%%CropBox: 0 0 720 720
%%Title: マルチサークル10
%%Creator:Studio Fruit Jam / Toyokazu Nishi
%%Copyright:Studio Fruit Jam / Toyokazu Nishi
%%CreationDate:2018年8月3日 金曜日午前9:59:25
% 参考:コンピュータ・グラフィックス P32
% ================ 座標変換 ================
360 360 translate % 座標の原点を中央に移動
% ================ 背景 =================
.917 .917 .863 setrgbcolor
-360 360 720 -720 rectfill
% ====================== 初期値
/s 10 def % 円と円の間隔(変更可)
/max 320 def % 円の最大値(変更可)
max neg 0 translate % 座標の補正(図形をセンターに)
/c1 { 0.78823 0.4196 0.60784 setrgbcolor } def % c1カラー
/c2 { 0.52156 0.4196 0.60784 setrgbcolor } def % c2カラー
% ================================================
% メイン
% ================================================
newpath % パスの初期化
0 s max { % 0からmaxまでs刻みで増分し{ }内を繰り返す
/k exch def % 制御変数をkに入れる
k 0 k 0 360 arc c1 stroke % (k,0)に半径kの円をc1色で描く
} for
max s neg 0 { % maxから0まで-s刻みで減分し{ }内を繰り返す
/t exch def % 制御変数をtに入れる
% (max*2-t,0)に半径tの円をc2色で描く
max 2 mul t sub 0 t 0 360 arc c2 stroke
} for
応用例
コメント