|
THotPDF.RegisterLatticeFormGouraudShading
|
Vrh |
|
Deklariše PDF 1.3+ lattice-form Gouraud-shaded triangle mesh shading (ISO 32000-1 8.7.4.5.5, /ShadingType 5) i stavlja ga u inline Pattern Type 2 unos u page Resources/Pattern rečniku. Renderer automatski trianguliše svaki par susednih redova u traku trouglova, pa pozivač prosleđuje samo mrežu temena - korisno kada su izvorni podaci već u regularnoj mreži uzorka (teren, FEA rezultati, naučni heatmapovi). Koristite RegisterFreeFormGouraudShading kada je triangulacija neredovna i kada su potrebne zastavice po trouglu
Delphi syntax: function RegisterLatticeFormGouraudShading(XMin, YMin, XMax, YMax: Single; NumComponents: Integer; VerticesPerRow: Integer; const Vertices: array of Extended): AnsiString;
C++ syntax: AnsiString RegisterLatticeFormGouraudShading(float XMin, float YMin, float XMax, float YMax, int NumComponents, int VerticesPerRow, const Extended* Vertices, int VertexElementCount);
Opis Ishod se emituje kao indirektni strim sa /ShadingType 5, /BitsPerCoordinate 16, /BitsPerComponent 8 i /VerticesPerRow N. Za razliku od Type 4, nema bajta zastavice po temenu i /BitsPerFlag ne postoji u rečniku shading; svako teme zauzima 4 + NumComponents bajta (2 big-endian X + 2 big-endian Y + N komponenti boje). Niz /Decode mapira 16-bitne koordinate nazad na zadati korisnički pravougaonik [XMin, XMax] x [YMin, YMax], a svaka komponenta boje nazad na [0, 1] Temena su poređana rednim redosledom: prvih VerticesPerRow temena čini red 0, sledećih VerticesPerRow red 1, itd. Renderer povezuje svaki par susednih redova (red i i i+1) u traku trouglova - nema zastavica, nema eksplicitnog spiska trouglova. Broj Extended vrednosti u Vertices mora biti višekratnik broja (2 + NumComponents) * VerticesPerRow i dobijeni broj redova mora biti najmanje 2
XMin, YMin, XMax, YMax - korisnički koordinatni pravougaonik koji ograničava mrežu. Ove četiri vrednosti su prva četiri unosa /Decode. Postavite ih u iste korisničke koordinate u kojima ćete crtati - za HotPDF screen-coordinate pravougaonik na (X, Y, W, H) odgovarajući PDF korisnički pravougaonik je (X, PageHeight - Y - H) do (X + W, PageHeight - Y) NumComponents - broj color komponenti po vrhu Prosledite 1 za DeviceGray, 3 za DeviceRGB ili 4 za DeviceCMYK Bilo koja druga vrednost baca izuzetak VerticesPerRow - broj vrhova N po lattice redu, N ≥ 2 Unos rečnika /VerticesPerRow preuzima ovu vrednost doslovno Broj redova M se izvodi iz dužine niza kao VertexCount / VerticesPerRow i mora biti najmanje 2 Temena - ravni niz Extended vrednosti u redosledu (X, Y, c1...cN) po temenu, ponovljen u row-major redosledu (najpre red 0, zatim red 1, ...). Koordinate se klampuju na [XMin, XMax] x [YMin, YMax] i kvantizuju na 16-bitne cele brojeve; komponente boje se klampuju na [0, 1] i kvantizuju na 8-bitne cele brojeve
Povratna vrednost: automatski generisano ime uzorka (Sh1, Sh2, ...) registrovano u Resources/Pattern rečniku tekuće stranice. Vraća prazan niz kada je StrictVersionLock uključen a aktivna Version je ispod PDF 1.3 (inače se verzija dokumenta automatski podiže na 1.3)
Code Example
Vidi i RegisterFreeFormGouraudShading, RegisterDeviceN, RegisterSeparation, RegisterLabColorSpace, Version, PDF Filter Support
|