|
139 / 139 / 53
Регистрация: 14.06.2016
Сообщений: 467
|
|
Обход препятствий09.08.2017, 20:24. Показов 4145. Ответов 18
Метки нет (Все метки)
Вообщем то, есть полигон заданный набором вершин, внутри него есть такие же полигоны - препятствия.
Как можно расчитать путь? Есть конечно мысли разбить его на небольшие квадраты (тогда вопрос скорее по геометрии, но на всякий случай тут спрошу - как?) и применить какой нибудь популярный a* или волновой алгоритм, нормально ли так сделать?
0
|
|
| 09.08.2017, 20:24 | |
|
Ответы с готовыми решениями:
18
Обход препятствий стаей
Обход препятствий |
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
|
| 09.08.2017, 20:42 | |
|
Каковы форма и размер той штуковины, которая передвигается?
0
|
|
|
139 / 139 / 53
Регистрация: 14.06.2016
Сообщений: 467
|
|
| 09.08.2017, 20:49 [ТС] | |
|
можно считать за круг с относительно небольшим радиусом.
0
|
|
|
Айлурофил
|
|
| 10.08.2017, 03:34 | |
|
Например:
1. Соединяем начальное и конечное положение прямыми линиями. 2. Для каждого препятствия проверяем пересечение линий с ним (в порядке удаления от исходного объекта). 3. Если пересекает, методом Монте-карло (тут простор для творчества, можно метод Монте-карло с доп. условиями) находим новую точку, из которой, если построить отрезки в начальное и конечное положение, пересечений с данным объектом (и уже проверенными) не будет. 4. Выбираем новое положение, как начальное 5. Переходим к п.1
1
|
|
|
Айлурофил
|
|
| 10.08.2017, 05:26 | |
|
Оптимально метод Монте-Карло с минимизацией расстояний.
0
|
|
|
139 / 139 / 53
Регистрация: 14.06.2016
Сообщений: 467
|
||
| 10.08.2017, 08:27 [ТС] | ||
|
0
|
||
|
Айлурофил
|
|
| 10.08.2017, 08:34 | |
|
Точка обхода препятствия выбирается случайно. И проверяется на то, что пути из неё не пересекают препятствия. Если не подходит, то выбирается следующая точка. Среди них ищется такая, с которой путь получается минимальным.
... Стало интересно, и реализовал упрощённый вариант. https://youtu.be/K3o-AZZQAS4
1
|
|
|
139 / 139 / 53
Регистрация: 14.06.2016
Сообщений: 467
|
|
| 10.08.2017, 08:46 [ТС] | |
|
0
|
|
|
Айлурофил
|
|
| 10.08.2017, 08:54 | |
|
Так у Вас же полигон задан, в котором всё это происходит? Случайная точка должна быть, по крайней мере, внутри него.
0
|
|
|
139 / 139 / 53
Регистрация: 14.06.2016
Сообщений: 467
|
||
| 10.08.2017, 08:56 [ТС] | ||
|
0
|
||
|
Айлурофил
|
|
| 10.08.2017, 09:23 | |
|
Большая, но ведь конечная? Значит, есть какие-то цифры границ. Вот в их пределах и надо оперировать.
Добавлено через 2 минуты В крайнем случае, найти все координаты объектов и препятствий, и взять запас, скажем, в 2 раза. Добавлено через 19 минут И есть вариант нахождения кратчайшего пути: для N препятствий сделать N точек обхода с неизвестными координатами. И построить функцию пути. Это будет функция с 2*N переменными. Пересечение с препятствием рассматривать как штрафные функции. А дальше минимизация функции стандартными методами. Но это может занять много времени для больших N.
0
|
|
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
||
| 10.08.2017, 17:03 | ||
|
Можно границы каждого полигона увеличить во все стороны на радиус "штуковины" и искать кратчайший путь для точки. Тогда каждый выпуклый угол каждого расширенного полигона будет критической точкой. Плюс исходная точка и пункт назначения. 2. Составляем граф. Каждая критическая точка будет вершиной графа. Две вершины соединены ребром, если отрезок, соединяющий соответствующие критические точки, не пересекается ни с одним из расширенных полигонов. 3. Ищем путь на графе. Используем А*. Либо (если нам для принятия решения нужны расстояния до всех объектов), используя волновой алгоритм, находим кратчайшие пути сразу до всех объектов.
1
|
||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 10.08.2017, 20:11 | ||
Сообщение было отмечено jr_ как решение
Решение
Зачем тут случайный поиск? Почему не привести задачу к готовым алгоритмам ведь их для чего то делали?
Исходник: Размер равный радиусу объекта движения. Рисовать закругленные отрезки. Или просто масштаб треугольнику. Добавит размер препятствиям равный габаритам объекта движения чтобы не черкал преграды. 2)Пикселизация. Сильно убавит разрешение карты преград и ускорит расчет. 3)A*
2
|
||
|
139 / 139 / 53
Регистрация: 14.06.2016
Сообщений: 467
|
|
| 12.08.2017, 11:43 [ТС] | |
|
0
|
|
|
139 / 139 / 53
Регистрация: 14.06.2016
Сообщений: 467
|
|
| 12.08.2017, 11:49 [ТС] | |
|
а не, неактуально.
0
|
|
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
||
| 12.08.2017, 14:43 | ||
Сообщение было отмечено jr_ как решение
Решение
0
|
||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 12.08.2017, 16:18 | |
|
В “Patch finding” должно быть давно что то готовое в нескольких вариантах. Эта задача вопрос всех игр RTS стратегий.
Велик: искать пересечение окружности заданного R с ломанной и так из каждой новой точки пересечения (рекурсивный алгоритм). По идее получиться примерно плавная траектория с равномерными точками на ломанной. Так объект будет двигаться с постоянной скоростью по кривой как юнит в RTS стратегиях.
0
|
|
|
11 / 9 / 2
Регистрация: 06.09.2022
Сообщений: 384
|
|
| 28.03.2025, 12:21 | |
|
А если надо выбраться из лабиринта улитки ? =) Уже не сработает тема с радиусом ?
0
|
|
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
|||
| 28.03.2025, 12:46 | |||
|
0
|
|||
| 28.03.2025, 12:46 | |
|
Помогаю со студенческими работами здесь
19
обход препятствий Обход препятствий ломаной линией - по вертикали Реализовать волновой алгоритм с OpenGl (обход препятствий) Обход препятствий (модель движения толпы к выходу) Программа по теме нечеткая логика (Обход препятствий роботом) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU
YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей.
Звучит. . .
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|