Преобразовывает значение переменной из одного диапазона в другой. Т.е. значение переменной value, равное fromLow, будет преобразовано в число toLow, а значение fromHigh – в toHigh. Все промежуточные значения value масштабируются относительного нового диапазона [toLow; toHigh].
Функция не ограничивает значение переменной заданными пределами, поскольку ее значения вне указанного диапазона иногда несут полезную информацию. Для ограничения диапазона необходимо использовать функцию constrain() либо до, либо после функции map().
Обратите внимание, что нижние пределы указываемых диапазонов (fromLow, toLow) численно могут быть больше верхних пределов (fromHigh, toHigh). В этом случае функция map() может использоваться для создания обратного диапазона чисел, например:
Функция может обрабатывать отрицательные числа, поэтому этот пример
также работает корректно.
Функция map() использует целочисленные вычисления, поэтому не возвращает дробных значений, как это иногда ожидается. При этом дробная часть числа просто отбрасывается, без округления или вычисления средних значений.
Параметры
value: переменная, значение которой необходимо преобразовать
fromLow: нижний предел текущего диапазона переменной value
fromHigh: верхний предел текущего диапазона переменной value
toLow: нижний предел нового диапазона переменной value
toHigh: верхний предел нового диапазона переменной value
Возвращаемые значения
Пример
Дополнение
Для интересующихся математикой приводим исходный код функции:
map(value, fromLow, fromHigh, toLow, toHigh)
Функция пропорционально переносит значение (value) из текущего диапазона значений (fromLow .. fromHigh) в новый диапазон (toLow .. toHigh), заданный параметрами.
Функция map() не ограничивает значение рамками диапазона, как это делает функция constrain(). Contrain() может быть использован до или после вызова map(), если необходимо ограничить допустимые значения заданным диапазоном.
Обратите внимание, что "нижняя граница" может быть как меньше, так и больше "верхней границы". Это может быть использовано для того чтобы "перевернуть" диапазон:
Возможно использование отрицательных значений:
Функция map() оперирует целыми числами. При пропорциональном переносе дробная часть не округляется по правилами, а просто отбрасывается.
Параметры
- value: значение для переноса
- fromLow: нижняя граница текущего диапазона
- fromHigh: верхняя граница текущего диапазона
- toLow: нижняя граница нового диапазона, в который переноситься значение
- toHigh: верхняя граница нового диапазона
Возвращаемое значение
Значение в новом диапазоне
Пример
Дополнительно
Математически функция map() может быть записана так:
map(value, fromLow, fromHigh, toLow, toHigh)
Функция пропорционально переносит значение (value) из текущего диапазона значений (fromLow .. fromHigh) в новый диапазон (toLow .. toHigh), заданный параметрами.
Функция map() не ограничивает значение рамками диапазона, как это делает функция constrain(). Contrain() может быть использован до или после вызова map(), если необходимо ограничить допустимые значения заданным диапазоном.
Обратите внимание, что "нижняя граница" может быть как меньше, так и больше "верхней границы". Это может быть использовано для того чтобы "перевернуть" диапазон:
Возможно использование отрицательных значений:
Функция map() оперирует целыми числами. При пропорциональном переносе дробная часть не округляется по правилами, а просто отбрасывается.
Параметры
- value: значение для переноса
- fromLow: нижняя граница текущего диапазона
- fromHigh: верхняя граница текущего диапазона
- toLow: нижняя граница нового диапазона, в который переноситься значение
- toHigh: верхняя граница нового диапазона
Возвращаемое значение
Значение в новом диапазоне
Пример
Дополнительно
Математически функция map() может быть записана так: