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
| ShaderName | Né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 |
|---|---|
| Vertices | TPLMeshVertex 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 |
| VerticesPerRow | Rácsonkénti csúcsszám, legalább 2 |
| BitsPerCoordinate | A csúcskoordináták kvantálási bitjei 1 és 32 között |
| BitsPerComponent | Színkomponensenkénti kvantálási bitek 1 és 16 között |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Dekódoló téglalap, amely a csomagolt csúcskoordinátákat az árnyalék koordinátaterébe képezi le |
Visszatérési értékek
| 0 | A 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 |
|---|---|
| 1 | A 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');