|
THotPDF.RegisterCoonsPatchMesh
|
Viršus |
|
Deklaruoja PDF 1.3+ Coons patch mesh šešėliavimą (ISO 32000-1 8.7.4.5.6, /ShadingType 6) ir įterpia jį kaip inline Pattern Type 2 įrašą puslapio Resources/Pattern žodyne. Kiekvieną lopą riboja keturios kubinės Bezier kreivės ir kiekviename kampe yra viena spalva; atvaizduotojas Coons paviršių įspraudžia tarp keturių briaunų, taip gaunamas bet kaip išlenktas spalvinis keturkampis. Naudokite tai tada, kai tiesių kraštinių trikampių tinklams (RegisterFreeFormGouraudShading, RegisterLatticeFormGouraudShading) reikėtų daugybės trikampių išlenktoms riboms aproksimuoti - folijos ir metaliniai gradientai ant lenktų kelių, iš SVG gauti gradientiniai tinklai ir bet kuris keturkampis su lenktais kraštais
Delphi syntax: function RegisterCoonsPatchMesh(XMin, YMin, XMax, YMax: Single; NumComponents: Integer; const Patches: array of Extended): AnsiString;
C++ syntax: AnsiString RegisterCoonsPatchMesh(float XMin, float YMin, float XMax, float YMax, int NumComponents, const Extended* Patches, int PatchesElementCount);
Aprašas Šešėliavimas išvedamas kaip netiesioginis srautas su /ShadingType 6, /BitsPerCoordinate 16, /BitsPerComponent 8 ir /BitsPerFlag 8. Kiekvienas patch supakuojamas kaip 1 vėliavos baitas (visada 0 nepriklausomiems patchams), po jo seka 12 valdymo taškų (kiekvienas po 4 baitus: 2 didžiojo galo X + 2 didžiojo galo Y) ir 4 kampų spalvos (kiekviena po NumComponents baitų), iš viso 1 + 48 + 4 * NumComponents baitai vienam patchui. /Decode masyvas mapina 16 bitų koordinates atgal į pateiktą [XMin, XMax] x [YMin, YMax] vartotojo erdvės stačiakampį, o kiekvieną spalvos komponentą atgal į [0, 1] 12 valdymo taškų žymimi c1..c12 pagal laikrodžio rodyklę aplink lopo ribą, pradedant nuo 1 kampo. Keturi kampai yra c1 / c4 / c7 / c10, o likę aštuoni (c2, c3 tarp c1 ir c4; c5, c6 tarp c4 ir c7; c8, c9 tarp c7 ir c10; c11, c12 tarp c10 ir c1) yra vidiniai kiekvienos kubinės briaunos Bezier valdymo taškai. Kai vidiniai valdymo taškai guli ties 1/3 ir 2/3 tiesios linijos tarp gretimų kampų, Coons paviršius virsta dviem kryptimis taikoma tiesine interpoliacija - vizualiai atitinka 4 viršūnių Type 4 tinklą
XMin, YMin, XMax, YMax - vartotojo erdvės stačiakampis, kuris apriboja užkoduotas koordinates. Šios keturios reikšmės tampa pirmaisiais keturiais /Decode įrašais. Valdymo taškai už šio stačiakampio ribų kodavimo metu nukerpami. Dėkite juos į tas pačias vartotojo erdvės koordinates, kurias piešite - HotPDF ekrano koordinatėmis aprašytam Rectangle ties (X, Y, W, H) atitinkantis PDF vartotojo erdvės stačiakampis yra nuo (X, PageHeight - Y - H) iki (X + W, PageHeight - Y) NumComponents - spalvų komponentų skaičius kiekvienam kampui. Perduokite 1 DeviceGray, 3 DeviceRGB arba 4 DeviceCMYK. Bet kuri kita reikšmė sukelia išimtį Patches - Extended reikšmių plokščiasis masyvas. Kiekvienas lopas prideda 24 + 4 * NumComponents reikšmes: 24 slankiojo kablelio reikšmes 12 valdymo taškų (X, Y, X, Y, ..., 12 porų c1..c12 kryptimi pagal laikrodį) ir dar 4 * NumComponents slankiojo kablelio reikšmes kampų spalvoms (1 / 2 / 3 / 4 kampas = c1 / c4 / c7 / c10 cikline tvarka). Masyvo ilgis turi būti teigiamas šio ruožo kartotinis. Visi išvedami lopai turi flag = 0 (nepriklausomas lopas); tęsinio vėliavos 1 / 2 / 3 (kraštinės dalijamos su ankstesniu lopu) šiame patogumo overload'e neatidengiamos
Grąžinama reikšmė: automatiškai sugeneruotas rašto pavadinimas (Sh1, Sh2, ...) užregistruotas dabartinio puslapio Resources/Pattern žodyne. Grąžina tuščią eilutę, kai StrictVersionLock įjungtas ir aktyvi Version yra žemiau PDF 1.3, kitu atveju dokumento versija automatiškai pakeliama iki 1.3
Code Example
See Also RegisterFreeFormGouraudShading, RegisterLatticeFormGouraudShading, RegisterDeviceN, Version, PDF Filter Support
|