Расстояние городских кварталов
Расстояние городских кварталов — метрика, при которой, расстояние между двумя точками равно сумме модулей разностей их координат, является альтернативой евклидовой метрики.
У этой метрики много имён. Расстояние городских кварталов также известно как манхэттенское расстояние, метрика прямоугольного города, метрика 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].
Расстояние Чебышёва
Случаи, при которых производится расчёты по метрике Чебышёва:
См. также
- Расстояние городских кварталов на Википедии.
- Евклидова метрика на Википедии.
- Расстояние Чебышёва на Википедии.