Pregunta

Imagina que estás dibujando un mapa de las fronteras del condado. Te dan un conjunto de polígonos, uno para cada límite, y dibujas cada polígono.

En lugares donde dos condados comparten un borde, simplemente terminas dibujando el borde dos veces. En ausencia de efectos de transparencia parcial, y con un lápiz sólido, esto no es un problema.

Pero, en los mapas, los bordes de este tipo generalmente se muestran con líneas de puntos. En este caso, pueden suceder situaciones como la que se muestra a continuación:

alt text

Observe cómo el patrón de guión, que normalmente es guión-punto-punto, se arruina donde las dos áreas comparten un borde. En este caso, se convirtió en un patrón de puntos de larga duración, pero en general podría hacer cualquier cosa, desde una apariencia casual hasta crear una línea sólida.

¿Cómo / debería el software de representación en mapa evitar que se produzcan artefactos de este tipo?

¿Fue útil?

Solución

El artefacto se debe al hecho de que el trozo de borde se dibuja dos veces. En lugar de tratar de suprimir tales artefactos, puedes intentar no dibujar secciones de borde dos veces, manteniendo una lista de segmentos ya dibujados en la memoria, y si encuentras un tramo que ya está dibujado, no lo dibujes nuevamente.

Otros consejos

El patrón de pincel colorea algunos píxeles de negro y deja solo algunos píxeles. En lugar de dejar solo el píxel, ¿puedes configurar el patrón de pincel para que se coloreen en blanco (o el color de fondo que sea)?

Otra posibilidad es dibujar siempre los límites de su condado dos veces: una con un patrón blanco sólido y otra vez con el patrón de pincel que elija.

Supongo que rompen sus líneas de borde en segmentos y luego eliminan las superposiciones.

Esto es principalmente un problema geométrico, no un problema de dibujo.

En lugar de ir con una línea discontinua, puedes hacerlo con el estilo Zip-a-tone , como este:

alt text

Zip-a-tone era un material de arte gráfico que era básicamente una lámina de plástico pegajosa con un patrón regular (imprimible) de puntos. Para usarlo, debe colocar una hoja grande sobre su dibujo y cortarlo alrededor de las áreas de su dibujo que desea imprimir en un tono, y luego despegar las partes que no desea.

Para esta imagen, acabo de ir con un patrón de tablero de ajedrez alternativo, con las líneas de dos píxeles de ancho. Debido a que todas las líneas se dibujan desde un bloque grande (virtual) de este patrón de tablero de ajedrez, nunca tendrá que preocuparse por artefactos extraños en las uniones o cualquier efecto de superposición.

Las líneas en ángulo son un poco difíciles, pero básicamente imaginas los bordes de la línea cortándolos a través de píxeles, y así los dibujas en el tono de grado apropiado en lugar del negro completo (en el caso de la línea de 45 grados aquí , los píxeles se dibujan con RGB (170, 170, 170), pero cualquier ángulo se podría representar con los tonos adecuados).

No estoy seguro si GDI + podría hacer esto fácilmente usando los pinceles texturizados, pero tal vez. De lo contrario tendrías que codificarlo a la medida. La ventaja de este método solo sobre las líneas grises sólidas sería que esto permitiría que se muestre parte del fondo.

Esta es una pregunta interesante en la que nunca pensé realmente. Creo que la única solución real es representar toda la figura compleja como una serie de líneas o caminos que no se superponen en ningún lugar. No me sorprende que GDI + no maneje esta situación de forma automática.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top