154 / 31 / 11
Регистрация: 29.10.2012
Сообщений: 397
|
|
1 | |
Path Finder17.11.2013, 01:22. Показов 1190. Ответов 5
Метки нет (Все метки)
Здравствуйте! Хочу сделать следующий симулятор: есть ландшафт, строишь дороги (не только с четырьмя направлениями, а таким образом что сам можешь контроллировать угол, причем хотелось бы еще реализовать дорогу в виде кривой) необязательно, чтобы красиво выглядело. Задача состоит в том, чтобы создать Path Finder, который будет находить наикратчайший путь от одного места до другого. На чем писать, не знаю. Писал игры на C++, с использование OpenGL, работал с XNA и UDK. На Uniti не работал. Люблю очень C#. Я знаю как реализовать A*, знаю, что есть алгоритмы path smooth, но тут проблема заключается в том, что я дороги хотел бы прокладывать любым образом под любым углом.. Посоветуйте что-нибудь пожалуйста. Заранее спасибо!
0
|
17.11.2013, 01:22 | |
Ответы с готовыми решениями:
5
Сокращение пути к файлу, x:\path\path\...\path The path you have specified (D:\Program Files) is invalid. The Oracle Home path may not contain spaces. [WPF] "Path" является неоднозначной ссылкой между "System.Windows.Shapes.Path" и "System.IO.Path" Найти директории path/dir, рядом с которыми есть файлы path/dir.png |
14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
|
|
17.11.2013, 11:42 | 2 |
Возможно в данном случае A* не очень подойдет, попробуйте почитать про Алгоритм Дейкстры
1
|
154 / 31 / 11
Регистрация: 29.10.2012
Сообщений: 397
|
|
23.11.2013, 19:04 [ТС] | 3 |
Я изучил эти два алгоритма, но мне все равно нужна помощь. Как сделать вот так? http://www.caliper.com/transmodeler/ Не обязательно так мощно, конечно. Например, как сделать так, чтобы по нарисованной дороге объект (машина) знал, как именно надо ехать (вдоль, например). Как указать ей путь? На чем вообще удобнее такое писать? Win GDI подходит или лучше брать 3Д? OpenGL с C++ там или UDK, Unity...
Добавлено через 8 минут Давайте так: как нарисовать просто черные линии на белом фоне, создать красную жирную точку и заставить ее двигаться от одной точки до другой по этим линиям как вот тут: http://www.youtube.com/watch?v=1BXtr-3R_4o
0
|
14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
|
||||||||||||||||||||||||||
24.11.2013, 11:33 | 4 | |||||||||||||||||||||||||
Недавно сталкивался с похожей проблемой. Нужно было провести ломаную линию 'уровень земли' состоящую из множества отрезков (пробую делать игру). Когда давно делал такое на Visual Basic - там был класс наряду с картинками и кнопками, назывался отрезок. Задаешь ему x1, y1, x2, y2 - и он на форме. Точно также можно менять по ходу выполнения программы, очень удобно.
Сейчас пробовал делать тоже самое на C++ Builder - тут такого класса нет. Спрашивал на форуме, фактически единственный вариант - рисовать на канве. В данном случае это гораздо менее удобно, хотя возможно сделать. Вот тут можно почитать. Точку лучше сделать как TImage, загрузив в нее изображение 1 на 1 пикселя. Движение будет задаваться как-то вроде такого:
Добавлено через 8 часов 24 минуты Алгоритм примерно такой будет: 1) Создаем массив, который будет хранить координаты начала (x1, y1) и конца (x2, y2) каждого отрезка дороги; 2) Рисуем отрезок на канве Image1:
И в хэдер наверно лучше добавить на всякий случай:
1
|
154 / 31 / 11
Регистрация: 29.10.2012
Сообщений: 397
|
|
24.11.2013, 16:23 [ТС] | 5 |
Спасибо большое. Как это реализовать, если дороги будут под прямым углом еще как-то можно. Но а если дорога кривая, как в России, то как тогда дать понять картинке машины, что надо двигаться по кривой? Или надо кривую указать как кучу прямых коротких отрезков?
0
|
14 / 14 / 4
Регистрация: 27.10.2012
Сообщений: 141
|
|
24.11.2013, 18:20 | 6 |
скорее всего да, в принципе отрезки могут быть и по три пикселя длиной правда не знаю как это скажется на производительности программы.
Ещё может быть вариант все поле представить как массив пикселей, у каждого из пикселей будет параметр true (является дорогой) или false (не является дорогой), а также цифра, обозначающая его принадлежность к дороге с таким-то номером. А автомобиль будет проверять параметр пикселя который рядом с текущим true или false и в соответствии с этим двигаться либо нет. Но это довольно сложно, я не могу до конца представить как такое делается, но в прицнипе реализуемо.
1
|
24.11.2013, 18:20 | |
24.11.2013, 18:20 | |
Помогаю со студенческими работами здесь
6
MTU Finder Batch Вирус Threat Finder Как настроить Finder? Удалить SAFE FINDER с MAC Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |