Detección de rutas superpuestas en Android

introduzca la descripción de la imagen aquí Quiero saber si hay alguna manera de detectar si una trayectoria dibujada actualmente toca / cruza una trayectoria existente. La trayectoria existente se dibuja o parte de la imagen de fondo. También sería útil, si soy capaz de encontrar esto después de que el camino actual está completamente dibujado. En el peor de los casos, ¿puedo realizar una comprobación de píxel a píxel para ver si se están tocando dos rutas?

2 Solutions collect form web for “Detección de rutas superpuestas en Android”

Utilice una ruta de acceso para definir la línea y, a continuación, establezca una android.graphics.Region a esa ruta. Más tarde verifique todas las regiones unas contra otras si se cruzan o no

region1.op(region2, Op.INTERSECT); 

Puede guardar las líneas en una lista y, a continuación, compruebe la línea que está dibujando contra cada línea de la lista para ver si se intersecta. Encontrará un montón de respuestas sobre cómo detectar intersección de líneas aquí en stackoverflow.

  ArrayList<Pair<Pair<Integer,Integer>,Pair<Integer,Integer>>> lineList = new ArrayList<Pair<Pair<Integer, Integer>, Pair<Integer, Integer>>>(); // add all your lines to the list // lineList.add(line); // handle the last line int startX = 10; int startY = 20; int endX = 40; int endY = 50; Pair<Integer,Integer> lineStart = new Pair<Integer, Integer>(startX, startY); Pair<Integer,Integer> lineEnd = new Pair<Integer, Integer>(startX, startY); Pair<Pair<Integer,Integer>,Pair<Integer,Integer>> lastLine = new Pair<Pair<Integer, Integer>, Pair<Integer, Integer>>(lineStart, lineEnd); for(Pair<Pair<Integer,Integer>,Pair<Integer,Integer>> l: lineList){ // if "lastLine" intersects "l" do you stuff } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.