NewRGBCoonsPatchMesh
Arcering, Vectorafbeeldingen
Beschrijving
Maakt een Coons-patch-mesh-shading, PDF-shading type 6, en registreert deze onder ShaderName in DeviceRGB-kleur. Elke patch draagt twaalf controlepunten, de vier patchhoeken plus twee controlepunten per rand, in de volgorde P1..P12 (hoeken op P1, P4, P7, P10), plus één kleur per hoek. Patches worden onafhankelijk geschreven, zonder gedeelde randen
Syntaxis
Delphi
Function TPDFlib.NewRGBCoonsPatchMesh(Const ShaderName: WideString;
Const Patches: Array Of TPLMeshPatchCorners;
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 |
|---|---|
| Patches | Array van TPLMeshPatchCorners-records; PX/PY bevatten de controlepuntcoördinaten in P1..P12-slots 0..11 en CR/CG/CB bevatten de vier hoekkleuren in het bereik 0 tot 1 |
| BitsPerCoordinate | Kwantisatiebits voor controlepuntcoördinaten, tussen 1 en 32 |
| BitsPerComponent | Kwantisatiebits per kleurcomponent, tussen 1 en 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Decoderingsrechthoek die de verpakte controlepuntcoördinaten afbeeldt op de shading-coördinaatruimte |
Retourwaarden
| 0 | De mesh is niet aangemaakt, omdat geen document is geselecteerd, de patch-array leeg is 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.7). Zie NewRGBTensorPatchMesh voor patches met binnenliggende controlepunten
Voorbeeld
Patch:= Default(TPLMeshPatchCorners);
Patch.PX[0]:= 100; Patch.PY[0]:= 100; // P1 corner
Patch.PX[3]:= 300; Patch.PY[3]:= 100; // P4 corner
Patch.PX[6]:= 300; Patch.PY[6]:= 250; // P7 corner
Patch.PX[9]:= 100; Patch.PY[9]:= 250; // P10 corner
Patch.CR[0]:= 1; Patch.CG[0]:= 0; Patch.CB[0]:= 0;
Patch.CR[1]:= 0; Patch.CG[1]:= 0; Patch.CB[1]:= 1;
Patch.CR[2]:= 0; Patch.CG[2]:= 1; Patch.CB[2]:= 0;
Patch.CR[3]:= 1; Patch.CG[3]:= 1; Patch.CB[3]:= 0;
SetLength(Patches, 1);
Patches[0]:= Patch;
PDF.NewRGBCoonsPatchMesh('patch', Patches, 16, 8,
100, 100, 300, 250);
PDF.SetFillShader('patch');