|
THotPDF.RegisterFreeFormGouraudShading
|
الأعلى |
|
يعلن shading لشبكة مثلثات Gouraud حرة الشكل في PDF 1.3+ (ISO 32000-1 8.7.4.5.4, /ShadingType 4) ويلفه في مدخل Pattern Type 2 inline في قاموس Resources/Pattern للصفحة. استخدم اسم pattern المعاد مع THPDFPage.SetFillPattern أو THPDFPage.SetStrokePattern لرسم تدرج متجهي يتغير لونه بسلاسة عبر كل مثلث
Delphi syntax: function RegisterFreeFormGouraudShading(XMin, YMin, XMax, YMax: Single; NumComponents: Integer; const Vertices: array of Extended): AnsiString;
C++ syntax: AnsiString RegisterFreeFormGouraudShading(float XMin, float YMin, float XMax, float YMax, int NumComponents, const Extended* Vertices, int VertexElementCount);
الوصف يصدر shading كتدفق غير مباشر واحد مع /ShadingType 4 و/BitsPerCoordinate 16 و/BitsPerComponent 8 و/BitsPerFlag 8. يحزم كل vertex بترتيب stream كـ flag byte ثم إحداثيي X وY بترميز big-endian ومكونات اللون. تربط /Decode الإحداثيات والمكونات بالنطاقات المعطاة تستهلك Vertices ثلاثة في كل مرة كمثلثات مستقلة. يجب أن يكون عدد قيم Extended في Vertices مساويًا تمامًا لـ (2 + NumComponents) * 3 * TriangleCount؛ ويرفع المساعد exception عندما لا يطابق طول المصفوفة stride أو عندما لا يكون عدد الرؤوس من مضاعفات ثلاثة
XMin وYMin وXMax وYMax - مستطيل user-space الذي يحد mesh. تصبح هذه القيم الأربع أول مداخل /Decode حتى تعود إحداثيات vertex المشفرة 16-bit إلى PDF user space. ضعها في إحداثيات user-space نفسها التي سترسم فيها NumComponents - عدد مكونات اللون لكل vertex. مرر 1 لـ DeviceGray أو 3 لـ DeviceRGB أو 4 لـ DeviceCMYK. أي قيمة أخرى ترفع exception. يضبط مدخل /ColorSpace في shading الناتج وفقًا لذلك Vertices - مصفوفة مسطحة من قيم Extended بالترتيب (X, Y, c1...cN) لكل vertex. تقيد الإحداثيات إلى صندوق [XMin, XMax] x [YMin, YMax] وتكمم إلى 16-bit، وتقيد مكونات اللون إلى [0, 1] وتكمم إلى 8-bit. المثلثات المتجاورة التي تحتاج إلى مشاركة حافة يجب أن تكرر الرؤوس المشتركة لأن shading يستخدم flag 0 لكل vertex
القيمة المعادة: اسم pattern مولد تلقائيًا (Sh1, Sh2, ...) ومسجل في قاموس Resources/Pattern للصفحة الحالية. يعيد سلسلة فارغة عندما يكون StrictVersionLock مفعّلًا وVersion النشطة أقل من PDF 1.3؛ وإلا يرفع إصدار المستند تلقائيًا إلى 1.3
Code Example
انظر أيضا RegisterDeviceN, RegisterSeparation, RegisterLabColorSpace, Version, PDF Filter Support
|