p5.js map()函数
p5.js 中的 map()函数用于在 min2 到 max2 的范围内对范围从 min1 到 max1 的数字进行归一化。
如果要缩放元素,规范化在 p5.js 中非常有用。因为我们知道归一化处理了缩放中的所有比例,所以我们得到了一个完全平衡的缩放。
不仅缩放,而且在任何转换操作中,标准化都非常有帮助。
句法:
map(value, start1, stop1, start2, stop2, [withinBounds])
参数:此函数接受上面提到的六个参数,如下所述:
- value:要标准化的值。
- min1:值的当前范围的最小值。
- max1:值的当前范围的最大值。
- min2:值的目标范围的最小值。
- max2:值的目标范围的最大值。
- withinBounds(可选):这将值的标准化值限制在 [min2, max2] 的范围内。
示例 1: WithinBounds 默认为 false。
Javascript
function setup() {
noLoop();
}
function draw() {
background(220);
// Assume value has range [0, 100]
let value = 50;
// We want to convert value
// in range of [0, 50]
let newValue = map(value, 0, 100, 0, 50);
console.log(newValue);
}
Javascript
function setup() {
noLoop();
}
function draw() {
background(204);
// Value has a range[0, 100]
let value = 150;
// We are mapping it in range of [0, 50]
let newValue1 = map(value, 0, 100, 0, 50);
console.log(newValue1);
// Notice the last parameter is true
// we are mapping it in range of [0, 50]
let newValue2 = map(value, 0, 100, 0, 50, true);
console.log(newValue2);
}
输出:
25
示例 2:注意 withinBounds 如何限制值的范围
Javascript
function setup() {
noLoop();
}
function draw() {
background(204);
// Value has a range[0, 100]
let value = 150;
// We are mapping it in range of [0, 50]
let newValue1 = map(value, 0, 100, 0, 50);
console.log(newValue1);
// Notice the last parameter is true
// we are mapping it in range of [0, 50]
let newValue2 = map(value, 0, 100, 0, 50, true);
console.log(newValue2);
}
输出:
75
50