NewRGBLatticeTriangleMesh

Vektorgrafika, Árnyékolás

Leírás

Rácsformájú, Gouraud-árnyalt háromszöghálót hoz létre, a PDF 5-ös árnyaléktípusát, és ShaderName néven regisztrálja DeviceRGB színben. A csúcsok sorról sorra íródnak soronként VerticesPerRow bejegyzéssel, a rácsot a megfelelő olvasó háromszögezi, és a csúcsadatfolyam nem hordoz éljelzőket

Szintaxis

Delphi

Function TPDFlib.NewRGBLatticeTriangleMesh(Const ShaderName: WideString;
  Const Vertices: Array Of TPLMeshVertex; VerticesPerRow: Integer;
  BitsPerCoordinate, BitsPerComponent: Integer;
  Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;

Paraméterek

ShaderNameNév, amely alatt az árnyalék regisztrálódik; adja át a SetFillShader vagy a SetLineShader hívásnak, hogy a hálóval fessen
VerticesTPLMeshVertex rekordok (X, Y, R, G, B) tömbje 0 és 1 közötti színkomponensekkel, sorról sorra rendezve; a hossznak a VerticesPerRow pontos többszörösének kell lennie, és legalább két sort tartalmaznia
VerticesPerRowRácsonkénti csúcsszám, legalább 2
BitsPerCoordinateA csúcskoordináták kvantálási bitjei 1 és 32 között
BitsPerComponentSzínkomponensenkénti kvantálási bitek 1 és 16 között
BoundsX0, BoundsY0, BoundsX1, BoundsY1Dekódoló téglalap, amely a csomagolt csúcskoordinátákat az árnyalék koordinátaterébe képezi le

Visszatérési értékek

0A háló nem jött létre, mert nincs kiválasztva dokumentum, a VerticesPerRow 2 alatt van, a csúcsszám nem a VerticesPerRow többszöröse vagy két sornál kevesebbet tartalmaz, vagy egy bites paraméter tartományon kívül esik
1A háló ShaderName néven regisztrálódott

Megjegyzések

A koordináták a könyvtár bal felső origójú rendszerét követik, és belsőleg átalakításra kerülnek (ISO 32000-1 §8.7.4.5.6). Egy rács a NewRGBFreeFormTriangleMesh hálónál kevesebb csúcsot igényel rácshoz igazított színmezőkhöz, mert a megosztott csúcsok egyszer szerepelnek

Példa

// 3 columns x 2 rows of color samples
SetLength(Vertices, 6);
for I:= 0 to High(Vertices) do
Begin
  Vertices[I].X:= 100+ (I mod 3)* 150;
  Vertices[I].Y:= 100+ (I div 3)* 150;
  Vertices[I].R:= I/ 5; Vertices[I].G:= 0.5; Vertices[I].B:= 1- I/ 5;
End;
PDF.NewRGBLatticeTriangleMesh('grid', Vertices, 3, 16, 8,
  100, 100, 400, 250);
PDF.SetFillShader('grid');