タイリングパターンとは図形を隙間なく平面に敷き詰めたものです。
タイリングパターンはPostScriptレベル2からの機能で、色付きと色なしがあります。
色付きとは基本となる図形に色を付けてパターン登録する方法で、色なしとは色を付けないでパターンを登録し、パターンを敷き詰める時に色を付ける方法です。
パターン作成と適用は以下の手順です。
(1)パターンの定義
(2)パターンのインスタンス化(実体化)
(3)色空間の選択
(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 %!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 240 240
%%Title:タイリングパターンパターン(色付き)
0 0 240 240 rectstroke
120 120 translate
<< /PatternType 1 % 1:タイリングパターン/2:シェーディングパターン
/PaintType 1 % 1:色つき/2:色なし
/TilingType 1 % 1:一定間隔/2:歪みなし/3:一定間隔の高速タイリング
%(必須)パターンセルのバウンディングボックスの左下隅と右上隅を指定する
/BBox [-20 -20 20 20 ]
/XStep 50 % パターンセルを水平方向に配置する間隔をパターン座標系で指定
/YStep 50 % パターンセルを垂直方向に配置する間隔をパターン座標系で指定
% 1.パターンを定義
/maru {
1 0 .5 setrgbcolor % ピンクの円
0 0 20 0 360 arc fill
45 rotate %黄色のダイヤ型
1 .8 0 setrgbcolor
-5 -5 10 10 rectfill
} def
/PaintProc { % パターンセルを描画する手続き
% 辞書をポップする以外、スタックの変更不可
begin % 辞書スタックにパターンをプッシュする
maru
end
} bind
>> % パターン辞書のプロトタイプの終了
%2. パターンのインスタンス化
matrix % パターン座標
makepattern % パターンのインスタンスの生成
/maruP exch def % インスタンスをmaruPにいれる
%3. 色空間の選択
/Pattern setcolorspace
%4. パターン呼び出し
maruP setcolor
-100 -100 200 200 rectfill % 矩形にパターンを描画する
BBoxとXStep/YStepの関係図です。
BBoxやXStep、YStepを変えるとパターンも変わります。
/BBox [-20 -20 0 0 ]
/XStep 20
/YStep 20
次はパターン登録時に色は付けないで、パターンを敷き詰める時に色を付ける方法です。
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 %!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 240 240
%%Title: タイリングパターンパターン(色なし)
0 0 240 240 rectstroke
120 120 translate
<< /PatternType 1 % 1:タイリングパターン/2:シェーディングパターン
/PaintType 2 % 1:色つき/2:色なし
/TilingType 1 % 1:一定間隔/2:歪みなし/3:一定間隔の高速タイリング
%(必須)パターンセルのバウンディングボックスの左下隅と右上隅を指定する
/BBox [-20 -20 20 20 ]
/XStep 50 % パターンセルを水平方向に配置する間隔をパターン座標系で指定
/YStep 50 % パターンセルを垂直方向に配置する間隔をパターン座標系で指定
/PaintProc { % パターンセルを描画する手続き
pop % パターン辞書をポップする
% 1.パターンを定義
0 0 20 0 360 arc fill % 円(塗りつぶしのみ、色はつけていない)
} bind
>> % パターン辞書のプロトタイプの終了
%2. パターンのインスタンス化
matrix % パターン座標
makepattern % パターンのインスタンスの生成
/maruP exch def % インスタンスをmaruPにいれる
%3. 色空間の選択
[/Pattern /DeviceRGB] setcolorspace
%4. パターン呼び出し(先頭で色設定)
.9 .4 .8 maruP setcolor -100 -100 100 100 rectfill
.6 .5 .85 maruP setcolor 0 -100 100 100 rectfill
.75 .7 0 maruP setcolor -100 0 100 100 rectfill
.3 .7 .8 maruP setcolor 0 0 100 100 rectfill
1 0.7 0 maruP setcolor 0 0 70 0 360 arc fill
【オペレータの説明】
<< | 辞書の構築を開始 |
>> | 辞書の構築を終了 |
辞書 begin | 辞書を辞書スタックにプッシュする |
end | カレント辞書を辞書スタックからポップする |
プロシージャ bind | プロシージャに記述されている名前をオペレータに一括して置換する |
コメント