NewRGBFreeFormTriangleMesh

التظليل، الرسومات

الوصف

ينشئ شبكة مثلثات حرة مظلَّلة بـ Gouraud، وهي نوع التظليل 4 في PDF، ويسجّلها تحت الاسم ShaderName بلون DeviceRGB. تُستهلك الرؤوس في مجموعات من ثلاثة، تصف كل مجموعة مثلثًا واحدًا تتدرج ألوان زواياه عبر سطحه. ويُصدَر كل مثلث باستقلال مع علم رأس بداية، فلا تُشترط أي مشاركة حواف بين المثلثات

الصيغة

Delphi

Function TPDFlib.NewRGBFreeFormTriangleMesh(Const ShaderName: WideString;
  Const Vertices: Array Of TPLMeshVertex; BitsPerCoordinate,
  BitsPerComponent: Integer;
  Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;

المعاملات

ShaderNameالاسم الذي يُسجَّل المظلّل تحته؛ مرّره إلى SetFillShader أو SetLineShader للرسم بالشبكة
Verticesمصفوفة من سجلات TPLMeshVertex ‏(X, Y, R, G, B) بمكوّنات لونية في النطاق من 0 إلى 1؛ يجب أن يكون الطول 3 على الأقل ومضاعفًا للعدد 3
BitsPerCoordinateبتات التكميم لإحداثيات الرؤوس، بين 1 و32
BitsPerComponentبتات التكميم لكل مكوّن لوني، بين 1 و16
BoundsX0, BoundsY0, BoundsX1, BoundsY1مستطيل فك الترميز الذي يخرط إحداثيات الرؤوس المحزوكة إلى فضاء إحداثيات التظليل

القيم المُعادة

0لم تُنشأ الشبكة، لعدم تحديد مستند، أو لأن ما زُوّد أقل من مثلث كامل واحد، أو لأن أحد معاملي البتات خارج النطاق
1سُجِّلت الشبكة تحت الاسم ShaderName

ملاحظات

تتبع الإحداثيات نظام الأصل أعلى اليسار الخاص بالمكتبة وتُترجم داخليًا (ISO 32000-1 §8.7.4.5.5). لتظليلات التدرّج بلا بيانات رؤوس انظر NewRGBAxialShader

مثال

SetLength(Vertices, 3);
Vertices[0].X:= 100; Vertices[0].Y:= 100;
Vertices[0].R:= 1; Vertices[0].G:= 0; Vertices[0].B:= 0;
Vertices[1].X:= 400; Vertices[1].Y:= 100;
Vertices[1].R:= 0; Vertices[1].G:= 1; Vertices[1].B:= 0;
Vertices[2].X:= 250; Vertices[2].Y:= 350;
Vertices[2].R:= 0; Vertices[2].G:= 0; Vertices[2].B:= 1;
PDF.NewRGBFreeFormTriangleMesh('tri', Vertices, 16, 8,
  100, 100, 400, 350);
PDF.SetFillShader('tri');