
ラティス形式と呼ばれるシェーディング方法です。
擬似矩形の頂点を設定して三角メッシュを作っていきます。
矩形の横方向の並びを行と言います。
矩形は次のパラメータで、座標を行単位で設定していきます。
x座標 y座標 色値(0〜4個)
VerticesPerRowは行の頂点数を指定します。
行の頂点が2なら矩形が1個、3なら2個、5なら3個になります。
★が付いたパラメータは変更可能です。色々と変えてみてください。
コード内の<< >>は本来英語記号ですが、ここでは入力できないため日本語記号<< >>を使用しています
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 %%Title:ラティス形式のグローシェーディングによる三角メッシュ 0 0 240 240 rectstroke % 画面囲み 120 120 translate % 座標の原点を中央に移動 << % シェーディング辞書定義 /ShadingType 5 % ラティス形式のグローシェーディング /ColorSpace /DeviceRGB % ★色空間定義 /VerticesPerRow 2 % ★ラティスの行の頂点数(2以上) /DataSource [ % ★三角メッシュを定義する頂点座標と色値 -100 100 1 0 1 % 上の行の頂点 0 100 0 1 1 -100 0 1 1 0 % 下の行の頂点 0 0 1 0 1 ] >> shfill %グラデーションで塗りつぶす |




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 | %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 240 240 %%Title:ラティス形式のグローシェーディングによる三角メッシュ 0 0 240 240 rectstroke % 画面囲み 120 120 translate % 座標の原点を中央に移動 /cyan { 0 1 1 } def % シアン /magenta { 1 0 1 } def % マゼンタ /yellow { 1 1 0 } def % イエロー << % シェーディング辞書定義 /ShadingType 5 % ラティス形式のグローシェーディング /ColorSpace /DeviceRGB % ★色空間定義 /VerticesPerRow 3 % ★ラティスの行の頂点数(2以上) /DataSource [ % ★三角メッシュを定義する頂点座標と色値 % 100の高さの頂点 -100 100 magenta 0 100 cyan 100 100 magenta % 0の高さの頂点 -100 0 yellow 0 0 cyan 100 0 yellow ] >> shfill %グラデーションで塗りつぶす |


※変更部分のコードのみ掲載しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /VerticesPerRow 3 % ラティスの行の頂点数(2以上) /DataSource [ % 三角メッシュを定義する頂点座標と色値 % 100の高さの頂点 -100 100 magenta 0 100 cyan 100 100 magenta % 0の高さの頂点 -100 0 yellow 0 0 cyan 100 0 yellow % -100の高さの頂点 -100 -100 magenta 0 -100 cyan 100 -100 magenta ] <pre> |

縦に任意数つなげることが可能です。
座標の順番を変えることで三角メッシュの方向も変わります。
ただし座標は一筆書きのように順番に設定します。


※変更部分のコードのみ掲載しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /VerticesPerRow 2 /DataSource [ 0 100 yellow -100 100 magenta 0 0 yellow -100 0 cyan -100 0 cyan 0 0 yellow -100 -100 magenta 0 -100 yellow 0 -100 yellow 100 -100 magenta 0 0 yellow 100 0 cyan 100 0 cyan 0 0 yellow 100 100 magenta 0 100 yellow ] |

真四角である必要はありません。
コメント