NewRGBFreeFormTriangleMesh
シェーディング, グラフィック
説明
自由形式のGouraudシェーディング三角メッシュ(PDFシェーディングタイプ4)を作成し、ShaderNameの名前でDeviceRGB色として登録します。頂点は3つずつのグループで消費され、各グループは1つの三角形を表し、コーナー色がその表面で補間されます。各三角形は開始頂点フラグ付きで独立に出力されるため、三角形間の辺共有は不要です
構文
Delphi
Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;パラメータ
| ShaderName | シェーダーを登録する名前。SetFillShader または SetLineShader に渡してメッシュを描画します |
|---|---|
| Vertices | 色成分が0から1の範囲のTPLMeshVertexレコード(X、Y、R、G、B)の配列。長さは3以上かつ3の倍数でなければなりません |
| BitsPerCoordinate | 頂点座標の量子化ビット数。1から32の間で指定します |
| BitsPerComponent | 色成分ごとの量子化ビット数。1から16の間で指定します |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | パックされた頂点座標をシェーディング座標空間へ写像するデコード矩形 |
戻り値
| 0 | メッシュは作成されませんでした。ドキュメントが選択されていない、完全な三角形が1つも供給されていない、またはビットパラメータが範囲外です |
|---|---|
| 1 | メッシュはShaderNameの名前で登録されました |
備考
座標はライブラリの左上原点系に従い、内部で変換されます(ISO 32000-1 §8.7.4.5.5)。頂点データを必要としないグラデーションシェーディングについては NewRGBAxialShader を参照してください
例
SetLength(Vertices, 3);
Vertices[0].X:= 100; Vertices[0].Y:= 100;
Vertices[0].R:= 1; Vertices[0].G:= 0; Vertices[0].B:= 0;
Vertices[1].X:= 400; Vertices[1].Y:= 100;
Vertices[1].R:= 0; Vertices[1].G:= 1; Vertices[1].B:= 0;
Vertices[2].X:= 250; Vertices[2].Y:= 350;
Vertices[2].R:= 0; Vertices[2].G:= 0; Vertices[2].B:= 1;
PDF.NewRGBFreeFormTriangleMesh('tri', Vertices, 16, 8,
100, 100, 400, 350);
PDF.SetFillShader('tri');