Волновой алгоритм Ли с 8-ми направлениями
Написал волновой алгоритм Ли с 4 направлениями, вроде ничего сложного, но решил ещё сделать с направлениями по диагоналям, посмотрел на вики алгоритм - там пару строк о 8 направлениях и ничего не понял, может кто-либо описать приблизительный алгоритм, какой шаг записывается по диагоналям?
|
То же самое, только коэффициенты другие и по диагонали вес маршрута будет меньше, нежели если идти от точки к точки буквой Г
|
Serg_pnz, спасибо.
Цитата:
|
По памяти, давно дело было... Итак есть центральная точка, у нее вес 0.
Всем точкам вокруг присваиваются веса, при чем если по диагонали, то три, иначе 2. Получаем матрицу /*нажми "Посмотреть"*/ <table width="180" border="1" cellspacing="2" cellpadding="0"> <tr> <td>3</td> <td>2</td> <td>3</td> </tr> <tr> <td>2</td> <td>0</td> <td>2</td> </tr> <tr> <td>3</td> <td>2</td> <td>3</td> </tr> </table> Потом рассчитываем для пустых вокруг матрицы, прибавляя вес. Для угловой тройки получим <table width="238" border="1" cellspacing="2" cellpadding="0" bgcolor="white"> <tr> <td>6</td> <td>5</td> <td bgcolor="#ed0972">6</td> <td></td> </tr> <tr> <td>5</td> <td bgcolor="#fdb913">3</td> <td bgcolor="#fdb913">2</td> <td bgcolor="#fdb913">3</td> </tr> <tr> <td>6</td> <td bgcolor="#fdb913">2</td> <td bgcolor="#fdb913">0</td> <td bgcolor="#fdb913">2</td> </tr> <tr> <td></td> <td bgcolor="#fdb913">3</td> <td bgcolor="#fdb913">2</td> <td bgcolor="#fdb913">3</td> </tr> </table> Не помню для ячейки, выделенной красным меняем значение или нет (из-за двойки по вертикали под ней). Наверняка в сети есть подробное описание и не такое корявое, как у меня, поищи))) |
boy_cow,
держи ссылки с примерами http://suvitruf.ru/2012/05/13/1176/ http://suvitruf.ru/2012/05/16/1211/ |
Дзен-трансгуманист, спасибо за поправку.
А, коэффициенты приравниваются исходя из ситуации. Нас на проектировании печатных плату учили, что если дорожка (путь) попадает куда-то рядом с чем-то плохим, то плюсуется так же дополнительный коэффициент. Так можно пройти "плохую" зону, если другого пути нет. |
Спасибо :)
|
Часовой пояс GMT +3, время: 04:35. |