Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Алгоритм поиска путей, нечто вроде Lines :) |
Автор: vintch 24.4.2005, 21:00 | ||||
Приветствую! Самое первое - данная тема посвящяется алгоритму поиска путей, схожим с алгоритмом игры Lines. У меня кое-что получилось, но... ФИГНЯ! Вобщем суть такая: есть что-то вроде плана квартиры. Стены нарисованы clBlack'ом на clWhite'е ![]() Всё это загружено в простой TImage. Если точнее - TBitmap; Вот, теперь, есть две точки - А и В. Мне нужно построить алгоритм, который будет строить ломаную из точки А в точку В, обходящую стены, нарисованые чёрным цветом (напоминаю ![]() Вот мой листинг, код, признаюсь, тупее некуда, но он кое-как работает ![]()
В переменную Def загружается картинка из TImage, а в TImage она установлена ещё с Object Inspector'а. Ломаная - траектория движения. Я ещё буду мучаться, но незнаю что у меня получится. Цель всего этого - небольшая часть большой программы, которая должна будет управлять домашним роботом, которого ещё пока нету ![]() Кто чем может, помогите люди!!! У меня мАзгов на ето не хватает!!!
![]() |
Автор: SPrograMMer 24.4.2005, 21:25 | ||
![]()
ну тада регистрируйся! не боись нечего страшного там нет, и По сабжу: с твоим листнгом не разбирался - много сильно понаписано, без комментариев... ![]() ![]() |
Автор: Albinos_x 24.4.2005, 23:15 |
почитай полезно, есть много интересного и на твой вопрос http://devkhit.ksu.ru/modules.php?name=Forums |
Автор: vintch 25.4.2005, 14:17 | ||
Дык уже зарегился! За советы спасибо, щас смотреть буду ![]() |
Автор: EKoshelev 27.4.2005, 11:36 |
Может быть реплика немного не в тему... Если бы такую прогу писали именно для робота, то, думаю, можно было бы немного попыхтеть и задать карту не .bmp, а как совокупность каких-нибудь зон (локаций). А если по волновому, то могу полуполезный совет предложить. Если формат картинки достаточно большой, то, возможно, есть смысл её уменьшить. Только так, чтобы стены не проподали и не срастались в месте проходов. |
Автор: vintch 27.4.2005, 14:27 |
Да, я с Вами полностью соглашаюсь! ![]() Я нашёл в инете полное описание этого алгоритма, написал, работает. НО! Он совершенно не такой эффиктивный, как его разрекламировали!!! Он находит путь примерно в 25-35% случаев! И при этом, он работает только если координаты начальной точки меньше координат конечной! Но это я кажется знаю как исправить. Мой алгоритм, что весьма интересно, работает раз в 10-20 быстрее, но он также не эффиктивен. Но зато, такой финт: если не работает первый алгоритм, то работает второй, и наоборот. (!!!) Карту уменьшать не собираюсь, мне это просто не подходит по ряду причин. А вот про алгоритмы, у меня появилась ещё идея, ![]() ![]() ![]() ![]() ![]() ![]() |
Автор: EKoshelev 4.5.2005, 07:03 |
vintch Не правильно пишешь слово "эффективен" |