Если вы используете числа для рисования на экране, то у вас может появиться необходимость изменить диапазон значений какой-либо переменной.
Изменяем диапазон значения Переменная mouseX находится в пределах от 0 до ширины окна, но, возможно, вы захотите изменить диапазон значений переменной mouseX. Для этого вам потребуется разделить mouseX на некоторую величину, а затем прибавить или вычесть другую величину для реализации сдвига диапазона влево или вправо:
void setup() {
size(240, 120);
strokeWeight(12);
smooth();
}
void draw() {
background(204);
stroke(255);
line(120, 60, mouseX, mouseY); // Белая линия
stroke(0);
float mx = mouseX/2 + 60;
line(120, 60, mx, mouseY); // Черная линия
}
Более удобный способ сделать это - функция map(). Она преобразует диапазон значений переменной. Первый параметр - переменная, второй и третий -
минимальное и максимальное значение переменной, четвертое и пятое - желаемое минимальное и максимальное значение переменной. Все вычисления скрыты в функции map().
Преобразуем диапазон с функцией map():
void setup() {
size(240, 120);
strokeWeight(12);
smooth();
}
void draw() {
background(204);
stroke(255);
line(120, 60, mouseX, mouseY); // Белая линия
stroke(0);
float mx = map(mouseX, 0, width, 60, 180);
line(120, 60, mx, mouseY); // Черная линия
}
Функция map() делает код легко читаемым, поскольку минимальное и максимальное значения заданы явно в качестве входных параметров. В приведенном примере диапазон mouseX от 0 до width преобразован в диапазон от 60 (когда mouseX = 0) до 180 (когда mouseX=width).