左右から円を次第に大きくしていきます。
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 40 41 |
[cc lang="postscript" tab_size="2" lines="40" highlight="0"] %!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 [/cc] |
応用例
コメント