DrawPathEvenOdd
Gráficos vectoriales, definición y trazado de rutas
Descripción
Pinta la ruta actual utilizando la regla de relleno par-impar en vez de la regla de devanado no nulo utilizada por DrawPath. Con la regla par-impar, un punto se considera "dentro" de la ruta cuando un rayo trazado desde él cruza la ruta un número impar de veces — por tanto, las subrutas superpuestas alternan entre bandas rellenas y sin rellenar sin necesidad de tener en cuenta la dirección de la subruta
Sintaxis
Delphi
Function TPDFlib.DrawPathEvenOdd(PathOptions: Integer): Integer;
ActiveX
Function PDFlib::DrawPathEvenOdd(PathOptions As Long) As Long
DLL
int DLDrawPathEvenOdd(int InstanceID, int PathOptions);
Parámetros
| PathOptions | Modo de pintura: 0 — Solo contorno. 1 — Solo relleno (regla par-impar). 2 — Relleno y contorno |
|---|
Valores devueltos
| 0 | Error — PathOptions está fuera del intervalo, no hay ningún documento abierto o no se ha iniciado ninguna ruta |
|---|---|
| 1 | La ruta se pintó correctamente |
Observaciones
Utilice la regla par-impar al construir figuras como anillos, arandelas o cualquier figura que perfore un hueco en un contorno mayor. Con la regla de devanado no nulo que utiliza DrawPath, la misma construcción solo funciona si la subruta interior se dibuja en sentido contrario; con la regla par-impar, la dirección no importa
Ejemplo
// 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