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

ShaderNameNaam waaronder de shader wordt geregistreerd; geef haar door aan SetFillShader of SetLineShader om met de mesh te tekenen
VerticesArray 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
BitsPerCoordinateKwantisatiebits voor vertexcoördinaten, tussen 1 en 32
BitsPerComponentKwantisatiebits per kleurcomponent, tussen 1 en 16
BoundsX0, BoundsY0, BoundsX1, BoundsY1Decoderingsrechthoek die de verpakte vertexcoördinaten afbeeldt op de shading-coördinaatruimte

Retourwaarden

0De mesh is niet aangemaakt, omdat geen document is geselecteerd, minder dan één volledige driehoek is aangeleverd of een bits-parameter buiten het bereik valt
1De 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');