У меня есть 2 объекта пути в моем коде Android. Я пробовал полностью проверить погоду, эти пути пересекаются или нет, но не в состоянии это сделать. Как я могу проверить погоду, пересечения пересекаются или нет. Цените любой хороший ответ ..... Спасибо,Пересечение пути в android
ответ
имеют вид на Region.op
Я не пробовал, но я бы предложил использовать:
Region.setPath(Path path, Region clip);
получить регион от оба ваших путей и после этого вы можете использовать:
if (region1.op(region2,Region.Op.INTERSECT)) {
// intersection
}
для проверки пересечения ...
Ответ дается Дираджем есть ответ на ваш вопрос:
https://stackoverflow.com/a/9918830/1268168
Вот копия и паста его ответ:
Другой метод, который я могу думать будет работать с простые объекты, которые могут быть созданы с использованием путей.
После того, как у вас есть два объекта, границы которых представлены пути, вы можете попробовать это:
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!
}
После того, как у вас есть свои объекты Путей, вы можете сделать их непосредственно с помощью drawPath(). Вы также можете выполнять движение путем преобразования() по пути.
Насколько я понимаю, переменная «клип» в приведенном выше коде должна быть ограничивающей рамкой пути. Для общих целей я использую
Region clip = new Region(0, 0, layoutWidth, layoutHeight);
Где ширина и высота макета могут быть размером вашего холста или деятельности или что-то еще.
Начиная с API 19, Path
теперь имеет метод op()
.
boolean intersects = path.op(p1,p2,Path.Op.INTERSECT)
Возвращаемое значение указывает на успешность операции, а не на то, пересекаются они или нет. Чтобы проверить пересечение, вам нужно увидеть, был ли результат isEmpty(). Быстрое тестирование: постройте ломаную линию как путь, затем один путь линии, который находится внутри угла, а не пересекает его. Пересеките их и увидите. –
- 1. Найти пересечение пути SVG
- 2. Путь Пересечение Удаление избыточного пути
- 3. Android пересечение взглядов не работает
- 4. Android растровый в пути
- 5. реальное пересечение 2 путей в android (новый путь)
- 6. Как проверить пересечение двух изображений Android?
- 7. Пересечение с набором Java
- 8. Пересечение списков в racket
- 9. пересечение массивов в JavaScript
- 10. Пересечение высоты в Python
- 11. Пересечение данных в оракуле
- 12. Пересечение в SWI-Prolog
- 13. Пересечение в MDX
- 14. пересечение многоугольников в R
- 15. Пересечение ImageView в JavaFX
- 16. Циркулярное пересечение в jQuery?
- 17. Пересечение громкости в OpenGL
- 18. Пересечение фрагментов в D
- 19. Пересечение линий в клена
- 20. Пересечение массива в MongoDB
- 21. Пересечение наборы в C
- 22. Пересечение множеств в C++
- 23. Пересечение MySQL в подзапросе
- 24. Прямоугольное пересечение в Ruby
- 25. Пересечение множеств в F #
- 26. программа трассировки пути в android
- 27. Рисунок пути постепенно в Android
- 28. алгоритм кратчайшего пути в android
- 29. Кратчайшее направление пути в Android
- 30. Android: Ошибка в пути сборок
Регион создаст прямоугольник, содержащий путь справа. Мой путь имеет кривые. Поэтому я не думаю, что создание региона будет эффективным. –
Нет, он не только создает прямоугольник, содержащий путь. Взгляните на документацию: «Это создает область, которая идентична пикселям, которые будут рисоваться по пути (без антиалиасинга)». « – Dirk
что будет возвращено op(), если region1 содержит всю область2 и их границу/outline не пересекается? Я имею в виду, как проверить два отдельных случая: пересечение 1.Region и 2. Пересечение пути – usman