Como determino com eficiência se um polígono é convexo, não convexo ou complexo?
Na página de manual paraXFillPolygon
:
E seshape
éComplexo, o caminho pode se auto-interceptar. Observe que pontos coincidentes contíguos no caminho não são tratados como auto-interseção.
E seshape
éConvexo, para cada par de pontos dentro do polígono, o segmento de linha que os conecta não cruza o caminho. Se conhecido pelo cliente, especificandoConvexo pode melhorar o desempenho. Se você especificarConvexo para um caminho que não é convexo, os resultados gráficos são indefinidos.
E seshape
éNonconvex, o caminho não se intercepta, mas a forma não é totalmente convexa. Se conhecido pelo cliente, especificandoNonconvex ao invés deComplexo pode melhorar o desempenho. Se você especificarNonconvex para um caminho de interseção automática, os resultados gráficos são indefinidos.
Estou tendo problemas de desempenho com preenchimentoXFillPolygon
e, como a página de manual sugere, o primeiro passo que desejo executar é especificar a forma correta do polígono. Atualmente estou usandoComplexo estar no lado seguro.
Existe um algoritmo eficiente para determinar se um polígono (definido por uma série de coordenadas) é convexo, não convexo ou complexo?