DrawPath

Vector graphics, Path definition and drawing

Description

يقوم بتلوين المسار الحالي — المجمع بواسطة StartPath، وAddLineToPath، وAddCurveToPath، وAddArcToPath، وClosePath — باستخدام قاعدة التعبئة non-zero winding؛ بعد تلوين المسار، يتم إعادة تعيين حالة المسار، بحيث يبدأ استدعاء StartPath التالي شكلاً جديدًا

Syntax

Delphi

Function TPDFlib.DrawPath(PathOptions: Integer): Integer;

ActiveX

Function PDFlib::DrawPath(PathOptions As Long) As Long

DLL

int DLDrawPath(int InstanceID, int PathOptions);

Parameters

PathOptionsوضع التلوين:

0 — المخطط التفصيلي فقط (الرسم بإعدادات الخط الحالية)
1 — التعبئة فقط (مع لون التعبئة الحالي وقاعدة الالتفاف غير الصفرية)
2 — التعبئة والمخطط التفصيلي

Return values

0فشل — PathOptions خارج النطاق، أو لا يوجد مستند مفتوح، أو لم يتم بدء أي مسار
1تم رسم المسار بنجاح

Remarks

اضبط ألوان الحدود والتعبئة وسمات الخط (SetLineWidth، SetLineCap، SetLineDash) قبل استدعاء DrawPath؛ يتم أخذ عينات من حالة الرسومات الحالية عند موقع الاستدعاء

بالنسبة للمسارات المتداخلة أو ذات التقاطع الذاتي، تعامل قاعدة الالتفاف غير الصفرية كل مسار فرعي كجزء من المنطقة نفسها: يتطلب وجود ثقب مقطوع من شكل أكبر أن يلتف المسار الفرعي الداخلي في الاتجاه المعاكس للمسار الخارجي؛ وعندما يكون ذلك غير مناسب، استدعِ DrawPathEvenOdd بدلاً من ذلك — حيث تتناوب قاعدة الزوجي والفردي ببساطة بين الداخل والخارج عند كل تقاطع، مما يجعل إحداث ثقوب التفريغ أمراً بسيطاً

Example

// Filled outlined diamond
PDF.SetStrokeColor(0, 0, 0);
PDF.SetFillColor(0.6, 0.8, 1);
PDF.SetLineWidth(1.5);

PDF.StartPath(150, 100);
PDF.AddLineToPath(200, 150);
PDF.AddLineToPath(150, 200);
PDF.AddLineToPath(100, 150);
PDF.ClosePath;
PDF.DrawPath(2);                       // 2 = fill and outline

See also

DrawPathEvenOdd, StartPath, AddLineToPath, AddCurveToPath, AddArcToPath, ClosePath, SetLineWidth