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