Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Волновой алгоритм Ли с 8-ми направлениями (https://javascript.ru/forum/misc/32057-volnovojj-algoritm-li-s-8-mi-napravleniyami.html)

boy_cow 02.10.2012 04:23

Волновой алгоритм Ли с 8-ми направлениями
 
Написал волновой алгоритм Ли с 4 направлениями, вроде ничего сложного, но решил ещё сделать с направлениями по диагоналям, посмотрел на вики алгоритм - там пару строк о 8 направлениях и ничего не понял, может кто-либо описать приблизительный алгоритм, какой шаг записывается по диагоналям?

Serg_pnz 02.10.2012 09:39

То же самое, только коэффициенты другие и по диагонали вес маршрута будет меньше, нежели если идти от точки к точки буквой Г

boy_cow 02.10.2012 09:45

Serg_pnz, спасибо.

Цитата:

по диагонали вес маршрута будет меньше
это понятно, но как это вес считается, можно немного поподробней ?

Serg_pnz 02.10.2012 18:04

По памяти, давно дело было... Итак есть центральная точка, у нее вес 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>


Не помню для ячейки, выделенной красным меняем значение или нет (из-за двойки по вертикали под ней).
Наверняка в сети есть подробное описание и не такое корявое, как у меня, поищи)))

Serg_pnz 02.10.2012 21:21

boy_cow,
держи ссылки с примерами
http://suvitruf.ru/2012/05/13/1176/
http://suvitruf.ru/2012/05/16/1211/

Serg_pnz 03.10.2012 09:32

Дзен-трансгуманист, спасибо за поправку.
А, коэффициенты приравниваются исходя из ситуации. Нас на проектировании печатных плату учили, что если дорожка (путь) попадает куда-то рядом с чем-то плохим, то плюсуется так же дополнительный коэффициент. Так можно пройти "плохую" зону, если другого пути нет.

boy_cow 04.10.2012 21:08

Спасибо :)


Часовой пояс GMT +3, время: 04:35.