Помогите понять алгоритм марширующих квадратов - PullRequest
6 голосов
/ 13 мая 2011

В моей игре я хочу расположить квадраты по краям монохромного изображения: enter image description here

Итак, я нашел этот алгоритм, который должен решить проблему.http://en.wikipedia.org/wiki/Marching_squares

Не кажется, что это сложно реализовать, я просто думаю, что не понимаю точно, что говорит Вики.Я думаю, что я должен разбить изображение на ячейки, где каждая ячейка представляет 2x2 пикселей на изображении?Это верно?Затем я теряюсь по этой инструкции:

Для каждой ячейки в контурной сетке:

1.Составьте 4 бита по углам ячейки, чтобы построить двоичный индекс: обойдите вокругячейка в направлении по часовой стрелке, добавляющая бит к индексу, используя побитовое ИЛИ и сдвиг влево, от старшего значащего бита вверху слева до наименее значимого бита внизу слева.Результирующий 4-битный индекс может иметь 16 возможных значений в диапазоне 0-15.

Я не уверен, как добавить бит.

Спасибо

1 Ответ

1 голос
/ 13 мая 2011

После создания ячеек 2x2 для каждой вы вычисляете число следующим образом:

  • установите значение 0
  • , если верхняя левая точка находится выше порога,добавьте 8
  • , если верхняя правая точка выше, добавьте 4
  • , если нижняя правая точка выше, добавьте 2
  • , если нижняя левая точка выше порога,добавить 1.

Отредактированное форматирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...