DrawPathEvenOdd

Διανυσματικά γραφικά, ορισμός και σχεδίαση διαδρομών

Περιγραφή

Ζωγραφίζει την τρέχουσα διαδρομή με τον κανόνα γεμίσματος even-odd αντί για τον κανόνα non-zero 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