
放射状の線を描きます。
四角の枠を等間隔に分割し、そこと原点とを結んで放射状にします。
それゆえ4隅では線と線の間隔が他と比べると細くなります。
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 | %!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年8月2日 木曜日午前11:07:08 % ================ 座標変換 ================ 360 360 translate % 座標の原点を中央に移動 % ================ 背景 ================= /DeviceRGB setcolorspace % カラースペース設定 0.56078 0.78431 0.82745 setrgbcolor -360 360 720 -720 rectfill % ====================== 初期値 /ds 360 def % 描画サイズ /s 20 def % 線の間隔(変更可) 1 1 1 setrgbcolor % 白線 % ================================================ % メイン % ================================================ newpath % パスの初期化 ds neg s ds { % -ds〜dsまでs刻みで増分し { }内を繰り返す /dt exch def % 制御変数をdtに入れる 0 0 moveto dt ds lineto % (0,0)中心点から(dt,ds)に線を引く:上 0 0 moveto dt ds neg lineto % (0,0)から(dt,-ds)に線を引く:下 0 0 moveto ds dt lineto % (0,0)から(ds,dt)に線を引く:右 0 0 moveto ds neg dt lineto % (0,0)から(-ds,dt)に線を引く:左 } for stroke |

応用例
放射状のパターンをプロシージャ化して4個並べます。
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 42 43 44 45 46 | %!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年8月2日 木曜日午前11:33:29 % ================ 背景 ================= /DeviceRGB setcolorspace % カラースペース設定 % ====================== 初期値 /ds 360 def % 描画サイズ /w ds 2 mul def /init { 360 dup translate } def % 座標の原点を中央に移動 /c1 { /rc .5 def /gc .3 def /bc .8 def } def % 以下カラー設定 /c2 { /rc .8 def /gc 0 def /bc .5 def } def /c3 { /rc 0 def /gc .5 def /bc 1 def } def /c4 { /rc .7 def /gc 0 def /bc .7 def } def /rad { % 放射状の線を描くプロシージャ newpath % パスの初期化 rc gc bc setrgbcolor % 色設定 ds neg dup w dup rectfill % バックのタイル ds neg 10 ds { % 放射状の線を描く /dt exch def 0 0 moveto dt ds lineto 0 0 moveto dt ds neg lineto 0 0 moveto ds dt lineto 0 0 moveto ds neg dt lineto } for 1 0 .6 setrgbcolor stroke } def % ================================================ % メイン % ================================================ gsave gsave gsave % グラフィックス状態を3回保存 init c1 .5 dup scale ds neg ds translate rad % パターンを縮小して左上に配置 grestore % グラフィックス状態を復帰 init c2 .5 dup scale ds ds translate rad % 右上に配置 grestore init c3 .5 dup scale ds ds neg translate rad % 左下に配置 grestore init c4 .5 dup scale ds neg ds neg translate rad % 右下に配置 |
コメント