DrawPathEvenOdd

גרפיקה וקטורית, הגדרת נתיבים וציור

תיאור

מצייר את הנתיב הנוכחי בשימוש בכלל המילוי even-odd במקום כלל ה-winding הלא-אפסי שבו משתמש DrawPath. לפי כלל ה-even-odd, נקודה נחשבת "בפנים" הנתיב כאשר קרן שמצוירת ממנה חוצה את הנתיב מספר אי-זוגי של פעמים — תתי-נתיבים חופפים לכן מתחלפים בין רצועות ממולאות ללא-ממולאות בלי צורך להתחשב בכיוון תת-הנתיב.

תחביר

Delphi

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

ActiveX

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

DLL

int DLDrawPathEvenOdd(int InstanceID, int PathOptions);

פרמטרים

PathOptionsמצב ציור:

0 — מתאר בלבד.
1 — מילוי בלבד (כלל even-odd).
2 — מילוי ומתאר.

ערכי החזרה

0נכשל — PathOptions מחוץ לטווח, אין מסמך פתוח או שלא התחיל נתיב
1הנתיב צויר בהצלחה

הערות

השתמשו בכלל even-odd בעת בניית צורות כמו דונאטים, רינגים או כל צורה שמנקבת חור דרך מתאר גדול יותר. עם כלל ה-winding השונה-מאפס שבו משתמש DrawPath אותה בנייה עובדת רק אם תת-הנתיב הפנימי מצויר בכיוון ההפוך; עם כלל ה-even-odd הכיוון אינו משנה.

דוגמה

// 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

ראו גם

DrawPath, StartPath, AddArcToPath, ClosePath