У меня есть множество путей, которые начинаются с одной и той же точки, но перемещаются в другом направлении. У меня есть другой путь, называемый исходным путем, который также начинается с той же точки. Все эти пути находятся в 2-D, то есть имеют значения (x, y). Мне нужно узнать ближайший путь (среди множества путей) к исходному пути. Как я могу это сделать?Найдите ближайший путь друг к другу?
ответ
Если вы знаете длину путей, вы можете использовать алгоритм A *. Вы не упомянули ни о каком языке программирования, ни о каком-либо соответствующем коде. Таким образом, я мог бы дать вам более подробный ответ.
Edit:
Я думаю, что решение упростить задачу так:
Что делать, если вы получили класс Square с помощью метода, который возвращает истину, если точка находится внутри этого квадрата (это довольно легко программировать и работать эффективно). Вы помещаете 3 довольно больших из этих квадратов на orignial путь. Затем вы повторяете все точки выбранных путей и проверяете, попадают ли все квадраты по этому пути. если они вы добавите их в другой список для следующей рекурсии. если все пути повторяются через вас, проверьте, попадает ли только один путь на все квадраты (это решение), вы возвращаете его. если более 1 пути попадают во все квадраты, вы вводите следующую рекурсию с 2ce квадратами и половиной длины. если ни один из путей не попадает на все квадраты, вы увеличиваете длину боковой линии на 25% для следующей рекурсии, а затем переместите все пути этой рекурсии в следующую. Поскольку все меньше и меньше путей нужно проверять, это должно иметь довольно хорошую производительность.
- 1. BookhshelfJS: Присоединение друг к другу
- 2. Добавление удвоений друг к другу
- 3. SQL: найдите строки, которые соответствуют друг другу, но не точно
- 4. C# Добавление классов друг к другу
- 5. JavaFX привязывает кнопки друг к другу
- 6. Как добавить значение друг к другу?
- 7. Границы функции, которые обращены друг к другу
- 8. Отношения друг к другу на Parse.com
- 9. Как связать/добавить модели друг к другу
- 10. Как управлять отношением друг к другу - grails
- 11. Избегайте спрайтов от кранов друг к другу
- 12. с ++ класс относится друг к другу
- 13. Способы подключения двух устройств друг к другу
- 14. NSFetchedResultsController в отношениях друг к другу
- 15. Как добавить LINQ-запросы друг к другу?
- 16. Травление объектов, которые относятся друг к другу
- 17. Как привязать 2 datagrids друг к другу?
- 18. Данные Tcp привязываются друг к другу
- 19. Таблицы не будут близко друг к другу
- 20. R - привязка конкретных переменных друг к другу
- 21. принесите Ylabels близко друг к другу
- 22. Ячейки, прикрепленные друг к другу в UICollectionView
- 23. Подключение трех ползунков друг к другу
- 24. Java Подклассы доступ друг к другу
- 25. Бутстрап невосприимчив друг к другу изображения
- 26. Поместите два тега друг к другу
- 27. Проверьте переменные значения близки друг к другу
- 28. Группировка координат, близких друг к другу
- 29. Два класса, которые относятся друг к другу
- 30. Идентификаторы в отношениях друг к другу
Язык программирования - C++ Все пути сохраняются в массиве, каждый из которых содержит 50 точек. – omkar1707
Вы посмотрели на A *? Searchnode может быть только ссылкой на patharray с индексом. расширение узла означает, что вы продвигаете индекс на единицу. эвристика будет расстоянием от цели + дистанции, уже пройденной. –
Если есть пересечения между путями, вы можете разделить пути на пути, имеющие идеальный граф для A *, конечно, расширение узла означает, что в этом случае у вас более одного узла. –