|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.04.2017, 14:49 | #1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Волновой алгоритм для гексагональной сетки
Здравствуйте.
Подскажите пожалуйста, как правильно получать соседние клетки для матрицы, которая представляется в виде шестиугольной сетки ?
Подпись ? Не, не слышал ...
|
05.04.2017, 15:55 | #2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Если как ЗАКОДИРОВАТЬ (хранить), чтобы было удобно получить ... Код:
для 32 соседями будут 12 21 22 41 42 52.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 05.04.2017 в 16:07. |
|
05.04.2017, 16:15 | #3 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
evg_m
Выглядит это - картинка во вложении. Предполагается хранение в обычной матрице. Для организации работы волнового алгоритма - это наиболее оптимально. У отдельно взятой клетки может быть до шести соседей, что есть самоочевидно ... Нужно получать массив из этих "до шести соседей", и распространять волну. Как в таком варианте получать соседей ?
Подпись ? Не, не слышал ...
|
05.04.2017, 16:41 | #4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
смотри выше ПРЕДЛАГАЕМЫЙ пример матрицы (числа это номер строки. номер столбца)
тоже в картинке но здесь есть цвета 2.JPG Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 05.04.2017 в 16:44. |
|
05.04.2017, 20:16 | #5 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
evg_m
С таким вариантом я вижу проблемы с индексацией. Изначатьно у меня массив координат объектов (со скриншота). Для поиска путей все объекты должны выстроиться в матрицу ... Пускать волны по вашему варианту я смогу, но прямая индексация будет выдавать артефакты в виде "несуществующих" ячеек.
Подпись ? Не, не слышал ...
|
05.04.2017, 22:36 | #6 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Цитата:
прочерки введены исключительно для наглядности "шестиугольного сдвига" ячеек. Код:
программа — запись алгоритма на языке понятном транслятору
|
||
05.04.2017, 23:06 | #7 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
evg_m, хорошо, тогда скажу от чё: вопрос стоял изначально такой - как получить соседние клетки ?
Перефразирую на более "понятный" вариант ... Есть некоторые координаты X, Y, которые указывают на клетку в квадратной матрице. Как получить соседние клетки при условии того, что матрица рассматривается как гексагональная сетка ? Ещё проще - как посчитать координаты соседних клеток ... Как построить матрицу - я знаю. Квадратное смещение (вправо/вверх) зависит от того, какая используется гексагональная сетка - вертикальная/горизонтальная (соответственно). У меня сетка вертикальная. Но это всё вода ... Я задавал этот вопрос тогда, когда у меня не было возможности самому на бумажке просчитывать варианты. Думал сэкономить время примерно следующим ответом: Для чётного X в квадратной матрице "соседние" клетки (в гексе) имеют следующие координаты - (X-2; Y), (X-1; Y-1), (X-1; Y), (X+1; Y-1), (X+1; Y), (X+2; Y). Аналогично для нечётного X координаты - (X-2; Y), (X-1; Y), (X-1; Y+1), (X+1; Y), (X+1; Y+1), (X+2; Y). Может где ошибся, поправьте пжалста.
Подпись ? Не, не слышал ...
Последний раз редактировалось OmegaBerkut; 05.04.2017 в 23:09. |
06.04.2017, 09:21 | #8 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Код:
программа — запись алгоритма на языке понятном транслятору
|
|
06.04.2017, 15:40 | #9 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,886
|
http://www.redblobgames.com/grids/hexagons/
http://www-cs-students.stanford.edu/...ramming/grids/ и вообще редблоб почитать полезно. |
06.04.2017, 21:17 | #10 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Как раз таки эту статью я и читал, когда ковырялся в гугле.
Вторая статья - тоже будет полезна. Спасибо.
Подпись ? Не, не слышал ...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Волновой алгоритм | Adelia | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 10.11.2014 18:02 |
Волновой алгоритм! | flaminger | Помощь студентам | 4 | 05.05.2013 13:04 |
Волновой алгоритм | zokwild | Помощь студентам | 1 | 28.11.2012 23:47 |
волновой алгоритм Delphi | The Catalyst | Помощь студентам | 3 | 01.12.2011 12:32 |
Волновой алгоритм поиска | Merkator | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 8 | 12.02.2009 16:15 |