@daniil14056

Какими соседями будут граничные клетки на замкнутой поверхности?

Как замкнуть двумерную дискретную поверхность (x,y).
Какими будут соседи для данных точек по 8 направлениям.
a00, a01, a02, a03,
a10, a11, a12, a13,
a20, a21, a22, a23,
a30, a31, a32, a33,
Какие будут соседи у точки a00 Что сверху, что слева, что по диагонали, особенно что по диагонали?
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 3
hint000
@hint000
у админа три руки
a03 слева
a30 сверху
a33, a13 и a31 по диагоналям
Это если поверхность топологически эквивалентна сфере тору (см. комментарии). Но ведь можно и другим способом замкнуть, хотя это уже будет посложнее.

для общности можно всегда от индексов брать остаток от деления, тогда:
a((x-1)mod m,(y-1)mod n)  a(x mod m,(y-1)mod n)  a((x+1)mod m,(y-1)mod n)
a((x-1)mod m, y   mod n)  a(x,y)                 a((x+1)mod m, y   mod n)
a((x-1)mod m,(y+1)mod n)  a(x mod m,(y+1)mod n)  a((x+1)mod m,(y+1)mod n)
Ответ написан
Alexandroppolus
@Alexandroppolus
кодир
соседи для элемента a[x, y] в табличке размером W по горизонтали и H по вертикали (индексы с нуля)

сверху: a[x, (y + H - 1) % H]
снизу: a[x, (y + 1) % H]
слева: a[(x + W - 1) % W, y]
справа: a[(x + 1) % W, y]

a % b - остаток от деления a на b
Ответ написан
Комментировать
@Akina
Сетевой и системный админ, SQL-программист.
В матрице Z(0..m, 0..n) элемент X(a,b) является соседом элемента Y(c,d), если выполняются условия
((a-b) MOD (m+1)) входит в {0, 1, m}
((c-d) MOD (n+1)) входит в {0, 1, n}

В случае, если соседи определяются только по вертикали/горизонтали, но не по диагонали, то одно из выражений должно быть нулём. Если только по диагонали - нуля быть не должно. Если оба выражения нулевые.. догадайся сам.

PS. MOD - оператор получения остатка от целочисленного деления.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы