NewRGBFreeFormTriangleMesh
Sfumature, grafica
Descrizione
Crea una mesh di triangoli in ombreggiatura Gouraud a forma libera, tipo di shading PDF 4, e la registra sotto ShaderName in colore DeviceRGB. I vertici vengono consumati in gruppi di tre, ciascuno a descrivere un triangolo i cui colori d'angolo si interpolano sulla sua superficie. Ogni triangolo viene emesso indipendentemente con un flag di vertice iniziale, quindi non è richiesta alcuna condivisione di lati tra triangoli
Sintassi
Delphi
Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Parametri
| ShaderName | Nome sotto cui lo shader viene registrato; passarlo a SetFillShader o SetLineShader per dipingere con la mesh |
|---|---|
| Vertices | Array di record TPLMeshVertex (X, Y, R, G, B) con componenti colore nell'intervallo da 0 a 1; la lunghezza deve essere almeno 3 e multiplo di 3 |
| BitsPerCoordinate | Bit di quantizzazione per le coordinate dei vertici, tra 1 e 32 |
| BitsPerComponent | Bit di quantizzazione per componente colore, tra 1 e 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Rettangolo di decodifica che mappa le coordinate compresse dei vertici nello spazio coordinate dello shading |
Valori restituiti
| 0 | La mesh non è stata creata, perché nessun documento è selezionato, è stato fornito meno di un triangolo completo o un parametro di bit è fuori intervallo |
|---|---|
| 1 | La mesh è stata registrata sotto ShaderName |
Osservazioni
Le coordinate seguono il sistema di origine in alto a sinistra della libreria e vengono tradotte internamente (ISO 32000-1 §8.7.4.5.5). Per shading a gradiente senza dati di vertice vedere NewRGBAxialShader
Esempio
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');