NewRGBFreeFormTriangleMesh
Arcering, Vectorafbeeldingen
Beschrijving
Maakt een vrije-vorm driehoeksmesh met Gouraud-schakering, PDF-shading type 4, en registreert deze onder ShaderName in DeviceRGB-kleur. Vertices worden in groepen van drie verbruikt; elke groep beschrijft één driehoek waarvan de hoekkleuren over het oppervlak interpoleren. Elke driehoek wordt onafhankelijk geschreven met een start-vertex-vlag, zodat gedeelde randen tussen driehoeken niet vereist zijn
Syntaxis
Delphi
Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Parameters
| ShaderName | Naam waaronder de shader wordt geregistreerd; geef haar door aan SetFillShader of SetLineShader om met de mesh te tekenen |
|---|---|
| Vertices | Array van TPLMeshVertex-records (X, Y, R, G, B) met kleurcomponenten in het bereik 0 tot 1; de lengte moet ten minste 3 zijn en een veelvoud van 3 |
| BitsPerCoordinate | Kwantisatiebits voor vertexcoördinaten, tussen 1 en 32 |
| BitsPerComponent | Kwantisatiebits per kleurcomponent, tussen 1 en 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Decoderingsrechthoek die de verpakte vertexcoördinaten afbeeldt op de shading-coördinaatruimte |
Retourwaarden
| 0 | De mesh is niet aangemaakt, omdat geen document is geselecteerd, minder dan één volledige driehoek is aangeleverd of een bits-parameter buiten het bereik valt |
|---|---|
| 1 | De mesh is geregistreerd onder ShaderName |
Opmerkingen
Coördinaten volgen het stelsel met de oorsprong linksboven van de bibliotheek en worden intern vertaald (ISO 32000-1 §8.7.4.5.5). Zie NewRGBAxialShader voor gradient-shadings zonder vertexgegevens
Voorbeeld
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');