NewRGBCoonsPatchMesh
التظليل، الرسومات
الوصف
ينشئ تظليل شبكة رُقع Coons، وهو نوع التظليل 6 في PDF، ويسجّله تحت الاسم ShaderName بلون DeviceRGB. تحمل كل رقعة اثنتي عشرة نقطة تحكّم، زوايا الرقعة الأربع زائد نقطتي تحكّم لكل حافة، بترتيب P1..P12 (الزوايا عند P1 وP4 وP7 وP10) مع لون واحد لكل زاوية. تُصدَر الرقع باستقلال دون مشاركة حواف
الصيغة
Delphi
Function TPDFlib.NewRGBCoonsPatchMesh(Const ShaderName: WideString;
Const Patches: Array Of TPLMeshPatchCorners;
BitsPerCoordinate, BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;المعاملات
| ShaderName | الاسم الذي يُسجَّل المظلّل تحته؛ مرّره إلى SetFillShader أو SetLineShader للرسم بالشبكة |
|---|---|
| Patches | مصفوفة من سجلات TPLMeshPatchCorners؛ تحمل PX/PY إحداثيات نقاط التحكّم في خانات P1..P12 المواضع 0..11، وتحمل CR/CG/CB ألوان الزوايا الأربع في النطاق من 0 إلى 1 |
| BitsPerCoordinate | بتات التكميم لإحداثيات نقاط التحكّم، بين 1 و32 |
| BitsPerComponent | بتات التكميم لكل مكوّن لوني، بين 1 و16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | مستطيل فك الترميز الذي يخرط إحداثيات نقاط التحكّم المحزوكة إلى فضاء إحداثيات التظليل |
القيم المُعادة
| 0 | لم تُنشأ الشبكة، لعدم تحديد مستند، أو لأن مصفوفة الرقع فارغة، أو لأن أحد معاملي البتات خارج النطاق |
|---|---|
| 1 | سُجِّلت الشبكة تحت الاسم ShaderName |
ملاحظات
تتبع الإحداثيات نظام الأصل أعلى اليسار الخاص بالمكتبة وتُترجم داخليًا (ISO 32000-1 §8.7.4.5.7). للرقع ذات نقاط التحكّم الداخلية انظر NewRGBTensorPatchMesh
مثال
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');