DrawPathEvenOdd

Vector graphics, Path definition and drawing

Description

يقوم بتلوين المسار الحالي باستخدام قاعدة تعبئة even-odd بدلاً من قاعدة الالتفاف غير الصفرية المستخدمة بواسطة DrawPath؛ باستخدام قاعدة even-odd، تعتبر النقطة "داخل" المسار عندما يقطع شعاع مرسوم منها المسار عددًا فرديًا من المرات — وبالتالي تتناوب المسارات الفرعية المتداخلة بين النطاقات المعبأة وغير المعبأة دون الحاجة إلى مراعاة اتجاه المسار الفرعي

Syntax

Delphi

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

ActiveX

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

DLL

int DLDrawPathEvenOdd(int InstanceID, int PathOptions);

Parameters

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

0 — المخطط التفصيلي فقط
1 — التعبئة فقط (قاعدة الزوجي والفردي)
2 — التعبئة والمخطط التفصيلي

Return values

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

Remarks

استخدم قاعدة الزوجي والفردي (even-odd) عند بناء أشكال مثل الحلقات الدائرية أو الحلقات المعدنية أو أي شكل يثقب ثقبًا في مخطط تفصيلي أكبر؛ ومع قاعدة اللف غير الصفرية (non-zero winding) المستخدمة بواسطة DrawPath، يعمل نفس البناء فقط إذا تم رسم المسار الفرعي الداخلي في الاتجاه المعاكس؛ ومع قاعدة الزوجي والفردي، لا يهم الاتجاه

Example

// A filled square with a circular hole cut through it (donut)
PDF.SetFillColor(0, 0.4, 0.7);

PDF.StartPath(100, 100);
PDF.AddLineToPath(200, 100);
PDF.AddLineToPath(200, 200);
PDF.AddLineToPath(100, 200);
PDF.ClosePath;

// Inner circle — direction does not matter under even-odd
PDF.StartPath(170, 150);            // start on the right side of the circle
PDF.AddArcToPath(150, 150, 360);    // centre (150, 150), full revolution
PDF.ClosePath;

PDF.DrawPathEvenOdd(1);                // 1 = fill

See also

DrawPath, StartPath, AddArcToPath, ClosePath