Compartir a través de


Modos de relleno de ruta de acceso

Los dos modos de relleno definidos para las rutas son alternativos y desenlazamiento. Ambos modos de relleno usan una regla par-impar para determinar cómo rellenar una ruta de acceso cerrada.

FP_ALTERNATEMODE aplica la regla par-impar de la siguiente manera: dibuje una línea de cualquier punto de inicio arbitrario de la ruta de acceso cerrada a algún punto obviamente fuera de la ruta de acceso cerrada. Si la línea cruza un número impar de segmentos de ruta de acceso, el punto inicial está dentro de la región cerrada y, por tanto, forma parte del área de relleno. Un número par de cruces significa que el punto no está en un área que se va a rellenar.

FP_WINDINGMODE considera no solo el número de veces que el vector cruza segmentos de la ruta de acceso, sino que también tiene en cuenta la dirección de cada segmento. Se considera que la ruta de acceso se dibuja de principio a fin, con la dirección de cada segmento implícita por el orden de sus puntos especificados: el primer vértice de un segmento es el punto "desde" y el segundo vértice es el punto "a". Ahora, dibuje la misma línea arbitraria descrita en modo alternativo. A partir de cero, agregue uno para cada segmento de dirección "hacia delante" que cruza la línea y reste uno para cada segmento de dirección "inversa" cruzado. (Reenviar e invertir se basan en el producto de punto del segmento y en la línea arbitraria). Si el resultado del recuento es distinto de cero, el punto inicial está dentro del área de relleno; un recuento cero significa que el punto está fuera del área de relleno.

En la ilustración siguiente se muestra cómo aplicar ambas reglas a la situación más compleja de una ruta de acceso de intersección automática.

Diagrama que ilustra la diferencia entre los modos de relleno alternativo y de desenlazamiento para las rutas de acceso.

En el modo de relleno alternativo, el punto A está dentro porque el rayo 1 pasa a través de un número impar de segmentos de línea, mientras que los puntos B y C están fuera, porque los rayos 2 y 3 pasan a través de un número par de segmentos. En el modo de relleno de viento, los puntos A y C están dentro, porque la suma de los segmentos de línea hacia delante (positivo) e inverso (negativo) cruzados por sus rayos, 1 y 3 respectivamente, no es cero, mientras que el punto B está fuera, porque la suma de los segmentos de línea hacia delante e inversa que ray 2 cruza es cero.