【基本-2】タイリングパターンについて

タイリングパターンとは図形を隙間なく平面に敷き詰めたものです。

タイリングパターンは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プロシージャに記述されている名前をオペレータに一括して置換する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次