Quiero saber si hay alguna manera de detectar si una ruta dibujada actualmente toca/cruza una ruta existente. La ruta existente se dibuja o parte de la imagen de fondo. También sería útil, si puedo encontrar este después de, la ruta actual está completamente dibujada. En el peor de los casos, ¿puedo hacer una comprobación píxel por píxel para ver si dos rutas se están tocando?Detección de rutas superpuestas en Android
Respuesta
Utilice una ruta para definir la línea, luego establezca un android.graphics.Region en esa ruta. Más tarde se les presentarán todas las regiones de unos contra otros ya sea que esté o no cruzan por
region1.op(region2, Op.INTERSECT);
Esto seguramente no funcionará ya que una región es un camino cerrado, y él no está dibujando caminos cerrados en todo momento? ¿O me estoy perdiendo algo aquí? – erbsman
Si dibuja algo, tendrá un ancho en ambas dimensiones xe y. Podría construir un camino cerrado a su alrededor, al menos uno pixeado en ancho. – Bondax
¿Alguna idea de cómo puedo crear una ruta desde una matriz PointF []? Tengo las coordenadas de todos los puntos en este conjunto. – deeJ
Puede guardar las líneas en una lista, y luego verificar la línea que está dibujando contra cada línea en la lista para ver si se cruza. Encontrarás muchas respuestas sobre cómo detectar la 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
}
Me pregunto cómo se guarda una línea en la lista. Guardo las coordenadas de todos los píxeles de la línea? – deeJ
simplemente guarde un par de pares. int startX = 10; int startY = 20; int endX = 40; int endY = 50; Pair
Esto no funcionará para una línea curva, ¿verdad? Lo siento si eso no fue implícito de la pregunta. – deeJ
- 1. Vistas superpuestas en Android
- 2. Compatibilidad con varias vistas superpuestas activas superpuestas en Android
- 3. Android: Vertical ListView con hileras superpuestas
- 4. Detección de pellizco en Android
- 5. coincidencias superpuestas en Regex
- 6. Divisiones superpuestas
- 7. detección de objetos android opencv
- 8. Android: detección de gestos arrojadizos
- 9. Imágenes superpuestas de isótopos?
- 10. textviews RelativeLayout superpuestas
- 11. Detección silenciosa de Sms android
- 12. ¿Detección de la cara en Android?
- 13. modo de detección Desactivar Bluetooth en Android
- 14. detección de voz en la Solicitud Android
- 15. Detección de dispositivo Bluetooth en Android - startDiscovery()
- 16. Columnas superpuestas en la altura
- 17. 2 Imágenes superpuestas
- 18. Teoría de detección de orientación de Android
- 19. Flotante crea divisiones superpuestas
- 20. Devolución de expresiones regulares superpuestas
- 21. Número de filas 'superpuestas' en SQL Server
- 22. Android táctil de 3 dedos de detección
- 23. Fusionar intervalos de fechas superpuestas
- 24. Detección de color con la cámara Android
- 25. ANDROID - detección de color usando openCV - ¿cómo?
- 26. etiquetas superpuestas en el gráfico circular flot
- 27. E/S superpuestas en una tubería anónima
- 28. Android: Detección Cuando ScrollView toca fondo
- 29. Detección automática del idioma de un texto en Java (Android)
- 30. Haskell superpuestas instancias y funciones de tipo
Adición de un enlace a una captura de pantalla de cómo se ve y algunas referencias a cuál es visto podrían ayudar a aclarar las cosas un poco. – erbsman
Captura de pantalla agregada. – deeJ