NewRGBFreeFormTriangleMesh

漸層, 圖形

描述

建立自由形式 Gouraud 著色三角形網格(PDF 著色類型 4),並以 DeviceRGB 色彩註冊在 ShaderName 之下。頂點以三個一組取用,每組描述一個三角形,其角點色彩會在該三角形表面上插值。每個三角形都帶有起始頂點旗標並獨立輸出,因此三角形之間無需共用邊

語法

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 即可用此網格繪製
VerticesTPLMeshVertex 記錄(X、Y、R、G、B)陣列,色彩元件範圍 0 到 1;長度必須至少為 3 且為 3 的倍數
BitsPerCoordinate頂點座標的量化位元數,介於 1 與 32 之間
BitsPerComponent每個色彩元件的量化位元數,介於 1 與 16 之間
BoundsX0, BoundsY0, BoundsX1, BoundsY1解碼矩形,將打包的頂點座標映射到著色座標空間

傳回值

0網格未建立,原因為未選取文件、提供的完整三角形少於一個,或位元參數超出範圍
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');