Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 7

обход препятствий

05.10.2011, 22:53. Показов 3412. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, передо мной стоит следующая задача. Есть алгоритм муравья, реализованный на Visual C++ 6.0. Алгоритм находит кратчайшее расстояние между n объектами на плоскости. Нужно добавить возможность обхода алгоритмом препятствий. В частности, препятствий в виде квадратного, треугольного и восмьугольного графа.
Для начала я решил решить упрощенную задачу из 2 городов и 3 препятсвий, которая представлена на вложенном рисунке.

Координаты каждой точки задаются на плоскости 100 на 100. Муравью нужно перейти из точки 1 в точку 17, передвигаться он может только по узлам графов. Теперь вопрос: как запретить муравью передвигаться внутри препятствий? То есть из точки он может перейти в точки 6 и 8, но не может перейти в точки 7, 10, 9, 16 и т.д. Как запретить ему это сделать?
На ум приходит только простой перебор всех разрешенных и запрещенных вариантов для каждой точки, но препятствия могут появляться на пути муравья уже в процессе работы алгоритма, поэтому нужно придумать какую-нибудь универсальную функцию, которая бы определяла, пересек муравей границу препятствия или нет.
Как это можно реализовать?
Миниатюры
обход препятствий  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2011, 22:53
Ответы с готовыми решениями:

Парсинг и обход дерева
С помощью библиотеки htmlcxx парсится веб страничка. На выходе получаю DOM дерево. Ладно бы была одна страничка, тогда написал функцию для...

Обход небинарного дерева
Здравствуйте! Второй день не могу спать спокойно, очень озадачен вопросом, как мне обойти все вершины дерева (CTreeCtrl) начиая с...

Обход файловой системы и мультипоточность
Работаю над программой индексирования файловой системы. Все диски обходяться(как по дереву от корня) до последней папки рекурсивно и...

4
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
07.10.2011, 11:07
Вижу на картинке пять графов и не понимаю, как ты между их узам ходить собрался.
И не понимаю, что за стрелочки внутри препятствий...
0
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 7
07.10.2011, 12:47  [ТС]
Мы описываем границы препятствия узлами графа. Возможные варианты препятствий: квадрат, треугольник и восьмиугольник.
Синяя стрелка означает допустимый путь, муравей не пересекает границы препятствия и может перейти в выбранный узел. Красная стрелка означает недопустимый путь, муравей пересекает границы препятствия и не может перейти в выбранный узел, в этом случае муравей должен выбрать другой путь.

Как я собрался ходить по узлам графа: от точки 1 до точки 17 можно пройти так:
1-6-7-16-15-14-17
или
1-4-11-12-17
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
07.10.2011, 16:24
Из 1 в 16 будет короче путь.
Говорю же, не понятно задание ни фига.
0
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 7
07.10.2011, 17:38  [ТС]
Найти кратчайшее расстояние между двумя объектами на плоскости.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2011, 17:38
Помогаю со студенческими работами здесь

Обход препятствий
Вообщем то, есть полигон заданный набором вершин, внутри него есть такие же полигоны - препятствия. Как можно расчитать путь? Есть...

Обход препятствий
Здравствуйте, пишу курсовой проект, возникла одна проблема. При нахождении препятствия движение останавливается(пока), нужно сделать так,...

Обход препятствий стаей
Суть задачи заключается в том, что нужно децентрализовано обходить препятствия стаей из 5-6 (для начала) объектов. Всё движение происходит...

Обход препятствий ломаной линией - по вертикали
Доброго времени суток, уважаемые форумчане. Помогите решить непростой вопрос. Есть макрос обхода препятствий - из фигур. Путь...

Реализовать волновой алгоритм с OpenGl (обход препятствий)
Помогите реализовать волновой алгоритм с OpenGl, пожалуйста


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru