DrawPathEvenOdd
Graphiques vectoriels, définition et dessin des tracés
Description
Peint le chemin actuel avec la règle de remplissage paire-impaire plutôt qu’avec la règle non nulle de DrawPath. Un point est considéré "inside" si un rayon issu de ce point traverse le chemin un nombre impair de fois ; les sous-chemins superposés alternent donc bandes remplies et vides sans tenir compte de leur sens
Syntaxe
Delphi
Function TPDFlib.DrawPathEvenOdd(PathOptions: Integer): Integer;
ActiveX
Function PDFlib::DrawPathEvenOdd(PathOptions As Long) As Long
DLL
int DLDrawPathEvenOdd(int InstanceID, int PathOptions);
Paramètres
| PathOptions | Mode de peinture : 0 — Contour uniquement. 1 — Remplissage uniquement (règle pair-impair). 2 — Remplissage et contour |
|---|
Valeurs de retour
| 0 | Échec — PathOptions se trouve hors limites, aucun document n'est ouvert ou aucun chemin n'a été démarré |
|---|---|
| 1 | Le chemin a été peint |
Remarques
Utilisez la règle paire-impaire pour les anneaux ou toute forme perçant un trou dans un contour plus grand. Avec la règle d’enroulement non nul de DrawPath, la construction ne fonctionne que si le sous-chemin interne est tracé en sens inverse ; avec paire-impaire, le sens est sans importance
Exemple
// 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