Hace poco hice otra pregunta sobre la intersección SVG aquí , a la que obtuve algunas buenas respuestas. Pero ahora estoy buscando un método para encontrar si dos rutas se cruzan que respeten el relleno del trazo y el tamaño del trazo.
En mi ejemplo, estoy haciendo una aplicación para escritura a mano. Tengo una herramienta de borrado que puede cambiar su ancho de trazo.
ejemplo 1: La línea roja en esta foto representa el borrador y la línea negra representa un trazo que quiero borrar. utilizando la biblioteca de intersección de ruta y los métodos de aquí (la línea se cruza con la ruta absoluta), la intersección no se detecta. ¿Hay una forma fácil de hacer esto?
ejemplo 2: tengo una herramienta de tijera en mi aplicación. El área azul resaltada se cruza con la ruta interna porque el relleno se superpone con ella. ¿Cómo puedo determinar si ocurre este tipo de evento? Para otro ejemplo, también considero lo siguiente como una intersección: ejemplo 3
Mi código de ejemplo es muy simple. Solo tengo un elemento SVG con N rutas dentro. Quiero tener una secuencia de comandos tal que pueda recorrer todas las rutas y determinar si alguna de las 2 se cruza. Si es posible, quiero adjuntar un detector de eventos a cada ruta para determinar cuándo se cruza con otra. ¿Hay un algoritmo o solución fácil para esto?