Tengo 2 objetos de ruta en mi código de Android. He intentado todo el camino para comprobar el clima estas trayectorias se cruzan o no, pero no puede hacerlo. Cómo puedo verificar si los caminos están cruzados o no. Apreciar cualquier buena respuesta ..... Gracias ,Intersección de ruta en android
Respuesta
echar un vistazo a Region.op
Yo no lo he probado pero sugeriría a utilizar:
Region.setPath(Path path, Region clip);
para obtener una región de ambos de sus caminos, y después se puede utilizar:
if (region1.op(region2,Region.Op.INTERSECT)) {
// intersection
}
para comprobar si hay intersección ...
La respuesta dada por Dheeraj tiene la respuesta a su pregunta:
https://stackoverflow.com/a/9918830/1268168
Aquí es una copia y pega de su respuesta:
Otro método que se me ocurre trabajará con objetos simples que pueden construirse usando Caminos.
Una vez que tenga dos objetos cuyos límites están representados por los caminos, es posible que intente esto:
Path path1 = new Path();
path1.addCircle(10, 10, 4, Path.Direction.CW);
Path path2 = new Path();
path2.addCircle(15, 15, 8, Path.Direction.CW);
Region region1 = new Region();
region1.setPath(path1, clip);
Region region2 = new Region();
region2.setPath(path2, clip);
if (!region1.quickReject(region2) && region1.op(region2, Region.Op.INTERSECT)) {
// Collision!
}
vez que tenga sus objetos como las rutas, se puede dibujar directamente mediante drawPath(). También puede realizar movimiento transformando la ruta.
Según mi entender, la variable "clip" en el código anterior debe ser el cuadro delimitador de la ruta. Para fines generales, uso
Region clip = new Region(0, 0, layoutWidth, layoutHeight);
Donde el ancho y la altura del diseño pueden ser del tamaño de su lienzo o actividad o lo que sea.
De API 19 en adelante, Path
ahora tiene un método op()
.
boolean intersects = path.op(p1,p2,Path.Op.INTERSECT)
El valor de retorno indica el éxito de la operación, no si se cruzan o no. Para verificar la intersección, debe ver si el resultado es Vacío(). interseca regiones cerradas, no caminos en sí. Prueba rápida: construye una polilínea angular como una ruta, luego una línea de ruta única que se encuentra dentro del ángulo, sin cruzarlo. Intercúlalas y observa. –
- 1. Intersección CGPathRef
- 2. intersección Timespan en C#
- 3. intersección de lista en Java
- 4. Intersección de matriz en bash
- 5. Intersección de listas en R
- 6. Ruta de capturas de pantalla en Android
- 7. Ruta de dibujo de Android
- 8. Intersección complejidad
- 9. Cómo cambiar .android ruta
- 10. Python - Intersección de cadenas
- 11. intersección de polígono rectilíneo
- 12. Intersección dentro de Object3D
- 13. Finding Intersección de NSMutableArrays
- 14. R intersección de listas
- 15. Unión e intersección en PowerShell?
- 16. Unión e Intersección en Django
- 17. Algoritmo de intersección de bordes?
- 18. Intersección de matriz de rubíes
- 19. Intersección de dos listas en Bash
- 20. Intersección de ndarrays 2D numpy
- 21. -C++ establecer intersección
- 22. Segmento-polígono intersección
- 23. Python establecer pregunta intersección
- 24. cualquier intersección de dos colecciones
- 25. intersección y unión de polígonos
- 26. intersección de dos mapas STL
- 27. rectángulos ejes alineados intersección
- 28. OpenCV detectar contornos intersección
- 29. Intersección de dos expresiones regulares
- 30. Python -Intersección de listas múltiples
¿La región creará un rectángulo que contenga la ruta correcta? Mi camino es tener curvas. Así que no creo que crear una región sea efectivo –
no, no solo crea un rectángulo que contiene la ruta. Eche un vistazo a la documentación: "Esto produce una región que es idéntica a los píxeles que dibujaría la ruta (sin antialiasing)." " – Dirk
qué devolverá el op() si la región1 contiene toda la región2 y su límite/esquema no se cruza? Quiero decir, cómo comprobar los dos casos separados, 1.Región intersección y 2. Trayectoria intersección – usman