
放射状の線を描きます。
四角の枠を等間隔に分割し、そこと原点とを結んで放射状にします。
それゆえ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 % 右下に配置
コメント