![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Да, почитал про Дейкстру, это то что надо!
Но, к сожалению я едва понимаю этот алгоритм на примерах, не говоря уже о том, чтобы его написать/переписать с другого языка =\ Может, у кого есть наработки или здесь есть мастера графов? Помогите, работа встала ![]()
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
у меня сейчас похожая задача.
досадно, что мощности компьютера огромны, а приходится изгаляться и придумывать методы обхода как будто перед тобой 286ой. пока додумался только до следующих упрощений: 1) делать пересчет пути не на каждом шаге, а раз в 10 ходов. Соотвественно разгрузить моменты пересчета разных юнитов так, чтобы на ход было как можно меньше пересчетов. (20 юнитов - 2 пересчета на ход). Между пересчетами двигаться в запланированном направлении. 2) Считать не весь путь, а n-переходов, потом выбрать путь приближающий к цели как можно ближе. 3) идти к цели по прямой, только при обнаружении препяствия возвращаться на шаг назад и начинать искать альтернативные пути (рекурсивно, естественно. Т.е. если альтернативные пути из этой точки не найдены все равно - вернуться еще на шаг назад и искать альтернативные пути). 4) если двигаться надо к конечной неподвижной точке - то считать путь делая в кадр n шагов, пока не будет найдено решение, а только затем начать движение. Последний раз редактировалось iflamberg; 02.04.2009 в 18:18. |
|
|||||
|
У тебя не совсем то. У меня нет препятсвий, у меня контрольные точки (графы). =\
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
было бы очень интересно узнать о решении, если ты его найдешь
|
|
|||||
|
[+6 23.11.09]
|
сходи сюда http://flash.tutsite.net/g3/g3.html моя разработка ! там какраз чё надо!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 16:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|