Расстояние городских кварталов

**Расстояние городских кварталов** — метрика, при которой, расстояние между двумя точками равно сумме модулей разностей их координат, является альтернативой евклидовой метрики.

У этой метрики много имён. Расстояние городских кварталов также известно как **манхэттенское расстояние**, **метрика прямоугольного города**, **метрика L1 или норма**, **метрика городского квартала**, **метрика такси**, **метрика Манхэттена**, **прямоугольная метрика**, **метрика прямого угла**. В Minecraft данный подход используется для реализации некоторых механик.

## Методы расчёта

Minecaft измеряет расстояние между двумя точками (() и ()) в трёхмерном пространстве одним из трёх способов — евклидовой метрикой, метрикой городских кварталов или метрикой Чебышёва.

### Евклидова метрика

В данном случае две точки соединяет прямая линия, длину этой лини можно рассчитать следующим образом:


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

### Метрика городских кварталов

Расчёты при данном методе происходят быстрее, расчёт ускоряется за счёт использования абсолютных значений вместо квадратов разности, тем самым избегая использование квадратного корня и возведения в степень:


### Расстояние Чебышёва

Расстояние в данном случае можно определить как наибольшее по одной из осей, если в метрике городских кварталов евклидову окружность можно сопоставить с ромбом, то по Чебышёву она является квадратом. Рассчитать расстояние можно следующим образом:


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

## Использование в Minecraft

### Метрика городских кварталов

Может быть использована в следующих ситуациях:

- Свет от источников света, таких как факел, костёр, фонарь, светокамень и другие - свет распространяется в соответствии с метрикой такси.
- Плавка снега и льда от факела или теплового блока (только для Education Edition).
- Потоки воды и лавы.
- Сигнал по проводам красной пыли, что можно увидеть, если разложить красную пыль квадратом 15*15.
- Дальность симуляции в Bedrock Edition, границы, в пределах которых блоки могут обновляться каждый тик (например в них ударит молния), а за пределами которых исчезают мобы.
- Спаунер мобов, порождающий мобов в пределах 4 блоков от себя.
- Губка, впитывающая воду в пределах 7 блоков, образуя вокруг себя октаэдр.
- Листва и строительные леса, определяющие расстояние от поддерживающего блока по метрике такси.
- Фантомы в Java Edition, которые появляются на высоте 20-34 блоков от игрока, и до 10 блоков по горизонтали по метрике такси.
- Распространение морских огурцов при использовании костной муки.
- Окисление медного блока в пределах 4 блоков от уже окисленного.
- Перемещение шалкеров.
- Обновление блоков, инициируемое некоторыми механизмами из красной пыли.

### Евклидова метрика

Случаи, в которых проводится расчёт с помощью евклидовой метрики:

- Радиус исчезновения мобов в Java Edition.
- Появление в реках и озёрах кругов из глины, гравия и других блоков (дисков).
- Эффект от взрыва.
- Притягивание молний к молниеотводу в пределах сферы в 128 блоков (64 для Bedrock Edition).
- Команда
`/locate`

. - Поиск портала нижнего мира для отправки в него игрока.
- Взрывающиеся зелья, оказывающие эффект на моба в пределах 4 блоков.
- Команды консоли, направленные на действия с мобами в пределах некоторого количества блоков.
- Осада, начинающаяся с размещения мобов на расстоянии от игрока по радиусу из евклидовой метрики.
- Сплэш в главном меню гласит «Euclidian!»
[1].

### Расстояние Чебышёва

Случаи, при которых производится расчёты по метрике Чебышёва:

## См. также

- Расстояние городских кварталов на Википедии.
- Евклидова метрика на Википедии.
- Расстояние Чебышёва на Википедии.